All Versions
11
Latest Version
Avg Release Cycle
105 days
Latest Release
1303 days ago

Changelog History
Page 1

  • v1.5.0 Changes

    September 21, 2020

    โž• Added

    • Type annotations are validated during continuous integration (#313).
    • Added _repr_html_ method in ProjectSchema class (#314, #324).
    • ๐Ÿ‘ Allow grouping by variables that are not present in all jobs in the project in JobsCursor.groupby (#321, #323).
    • โž• Added parameters usecols and flatten to allow selection of columns and flattening of nested data when converting signac data into a pandas DataFrame (#327, #330).
    • โž• Added support for pre-commit hooks (#355, #358).
    • ๐Ÿ“š Expanded CLI documentation (#187, #359, #377).

    ๐Ÿ”„ Changed

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix the signac config verify command (previously broken) (#301, #302).
    • โš  Warnings now appear when raised by the signac CLI (#317, #308).
    • ๐Ÿ›  Fix dots in synchronization error messages (#375, #376).

    ๐Ÿ—„ Deprecated

    • Deprecate the create_access_modules method in Project, to be removed in 2.0 (#303, #308).
    • ๐Ÿ—„ The MainCrawler class has replaced the MasterCrawler class. Both classes are deprecated (#342).

    โœ‚ Removed

    • โฌ‡๏ธ Dropped support for Python 3.5 (#340). The signac project will follow the NEP 29 deprecation policy going forward.
    • โœ‚ Removed dependency on pytest-subtests (#379).
  • v1.4.0 Changes

    February 29, 2020

    โž• Added

    • โž• Added Windows to platforms tested with continuous integration (#264, #266).
    • โž• Add command line option -m/--merge for signac sync (#280, #230).

    ๐Ÿ”„ Changed

    • Workspace directory is created when Project is initialized (#267, #271).
    • ๐Ÿ”„ Changed testing framework from unittest to pytest (#212, #275).
    • ๐Ÿ”จ Refactored internal use of deprecated get_statepoint function (#227, #282).

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed issues on Windows with H5Store, project import/export, and operations that move files (#264, #266).
    • Calling items or values on _SyncedDict objects does not mutate nested dictionaries (#234, #269).
    • ๐Ÿ›  Fixed issue with project.data access from separate instances of H5StoreManager (#274, #278).
    • Fixed error when launching signac shell if permissions are denied for .signac_shell_history (#279).

    โœ‚ Removed

    • โœ‚ Removed vendored tqdm module and replaced it with a requirement (#289).
    • โœ‚ Removed support for rapidjson as an alternative JSON library (#285, #287).
    • โœ‚ Removed tuple of keys implementation of nested dictionaries (#272, #296).
  • v1.3.0 Changes

    December 19, 2019

    โž• Added

    • ๐Ÿ‘ Official support for Python 3.8 (#258).
    • โž• Add properties Project.id and Job.id (#250).
    • โž• Add signac.diff_jobs function to compare two or more state points (#248, #247).
    • โž• Add function to initialize a sample data space for testing purposes (#215).
    • โž• Add schema version to ensure compatibility and enable migrations in future package versions (#165, #253).

    ๐Ÿ”„ Changed

    • Implemented Project. __contains__ check in constant time (#231).

    ๐Ÿ›  Fixed

    • ๐Ÿ Attempting to create a linked view for a Project on Windows now raises an informative error message (#214, #236).
    • ๐Ÿ”ง Project configuration is initialized using ConfigObj, allowing the configuration to include commas and special characters (#251, #252).

    ๐Ÿ—„ Deprecated

    • ๐Ÿšš Deprecate the get_id method in Project and Job classes in favor of the id property, to be removed in 2.0 (#250).
    • ๐Ÿ”ง In-memory modification of the project configuration, to be removed in 2.0 (#246).

    โœ‚ Removed

    • โฌ‡๏ธ Dropped support for Python 2.7 (#232).
  • v1.2.0 Changes

    July 22, 2019

    โž• Added

    • Keep signac shell command history on a per-project basis (#134, #194).
    • Add read_json() and to_json() methods to Collection class (#104, #200).

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix issue where shallow copies of instances of Job would behave incorrectly (#153, #207).
    • ๐Ÿ›  Fix issue causing a failure of the automatic conversion of valid key types (#168, #205).
    • ๐Ÿ‘Œ Improve the "dots in keys" error message to make it easier to fix related issues (#170, #205).
    • Update the __repr__ and __repr_html__ implementations of the Project, Job, and JobsCursor classes (#193).
    • โฌ‡๏ธ Reduce the logging verbosity about a missing default host key in the configuration (#201).
    • ๐Ÿ›  Fix issue with incorrect detection of dict-like files managed with the DictManager class (e.g. job.stores) (#203).
    • ๐Ÿ›  Fix issue with generating views from the command line for projects with only one job (#208, #211).
    • ๐Ÿ›  Fix issue with heterogeneous types in state point values that are lists (#209, #210).
  • v1.1.0 Changes

    May 19, 2019

    โž• Added

    • โž• Add command line options --sp and --doc for signac find that allow users to display key-value pairs of the state point and document in combination with the job id (#97, #146).
    • ๐Ÿ‘Œ Improve the representation (return value of repr()) of instances of H5Group and SyncedAttrDict.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix: Searches for whole numbers will match all numerically matching integers regardless of whether they are stored as decimals or whole numbers (#169).
    • ๐Ÿ›  Fix: Passing an instance of dict to H5Store.setdefault() will return an instance of H5Group instead of a dict (#180).
    • ๐Ÿ›  Fix error with storing numpy arrays and scalars in a synced dictionary (e.g. job.statepoint, job.document) (#184).
    • ๐Ÿ›  Fix issue with ResourceWarning originating from unclosed instance of Collection (#186).
    • ๐Ÿ›  Fix issue with using the get_project() function with a relative path and search=False (#191).

    โœ‚ Removed

    • ๐Ÿ‘Œ Support for Python version 3.4 (no longer tested).
  • v1.0.0 Changes

    February 28, 2019

    Highlights

    • ๐Ÿ‘ท Native integration of HDF5 files with the H5Store and H5StoreManager, which are exposed as the job.data, job.stores, project.data, and project.stores properties respectively.
    • ๐Ÿ‘ท The newly added signac.get_job() function makes it easier to obtain instances of Job by calling the function from within a job's workspace directory or by directly providing the path to the job's workspace directory. This is especially useful for interactive work or when accessing jobs which are outside of the current project.
    • Simplified export of project and job data to pandas dataframes via the to_dataframe() function.
    • ๐Ÿ‘ท Projects and job search results are displayed nicely in Jupyter Notebooks.
    • ๐Ÿ‘Œ Support for compressed Collection files.

    โž• Added

    • ๐Ÿ‘ Official support for Python 3.7.
    • The H5Store and H5StoreManager classes, which are useful for storing (numerical) array-like data with an HDF5-backend. These classes are exposed within the root namespace.
    • ๐Ÿ‘ท The job.data and project.data properties which present an instance of H5Store to access numerical data within the job workspace and project root directory.
    • ๐Ÿ‘ท The job.stores and project.stores properties, which present an instance of H5StoreManager to manage multiple instances of H5Store to store numerical array-like data within the project workspace and project root directory.
    • ๐Ÿ‘ท The signac.get_job() and the signac.Project.get_job() functions that allow users to get a job handle by switching into or providing the job's workspace directory.
    • ๐Ÿ‘ท The job variable is automatically set when opening a signac shell from within a job's workspace directory.
    • โž• Add the signac shell -c option which allows the direct specification of Python commands to be executed within the shell.
    • ๐Ÿ‘ท Automatic cast of numpy arrays to lists when storing them within a JSONDict, e.g., a job.statepoint or job.document.
    • Enable Collection class to manage collections stored in compressed files (gzip, zip, etc.).
    • ๐Ÿ‘ท Enable deleting of JSONDict keys through the attribute interface, e.g., del job.doc.foo.
    • ๐Ÿ‘ท Pretty HTML representation of instances of Project and JobsCursor targeted at Jupyter Notebooks (requires pandas, automatically enabled when installed).
    • ๐Ÿ‘ท The to_dataframe() function to export the job state point and document data of a Project or a JobsCursor, e.g., the result of Project.find_jobs(), as a pandas.Dataframe (requires pandas).

    ๐Ÿ”„ Changed

    • ๐Ÿ—„ Dots (.) in keys are no longer allowed for JSONDict and Collection keys (previously deprecated).
    • ๐Ÿ‘ท The JSONDict module is exposed in the root namespace, which is useful for storing text-serializable data with a JSON-backend similar to the job.statepoint or job.document, etc.
    • ๐Ÿ‘ท The Job.init() method returns the job to allow one-line job creation and initialization.
    • 0๏ธโƒฃ The search argument was added to the signac.get_project() function, which when True (the default), will cause signac to search for a project within and above a specified root directory, not only within the root directory. The behavior without any arguments remains unchanged.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix Collection.update() behavior such that existing documents with identical primary key are updated. Previously, a KeyError would be raised.
    • ๐Ÿ›  Fix issue where the Job.move() would trigger a confusing DestinationExists exception when trying to move jobs across devices / file systems.
    • ๐Ÿ›  Fix issue that caused failures when the python-rapidjson package is installed. The python-rapidjson package is used as the primary JSON-backend when installed.
    • ๐Ÿ›  Fix issue where schema with multiple keys would subset incorrectly if the list of jobs or statepoints was provided as an iterator rather than a sequence.

    โœ‚ Removed

    • โœ‚ Removes the obsolete and deprecated core.search_engine module.
    • The previously deprecated Project.find_statepoints() and Project.find_job_documents() functions have been removed.
    • ๐Ÿ‘ท The Project.find_jobs() no longer accepts the obsolete index argument.
  • v0.9.5 Changes

    January 31, 2019

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ท Ensure that the next() function can be called for a JobsIterator, e.g., project.find().
    • ๐Ÿ‘ท Pickling issue that occurs when a _SyncedDict (job.statepoint, job.document, etc.) contains a list.
    • ๐Ÿ Issue with the readline module that would cause signac shell to fail on Windows operating systems.
  • v0.9.4

    October 25, 2018
  • v0.9.3

    June 14, 2018
  • v0.9.2

    December 18, 2017