Skip to content

Releases: glotzerlab/signac

1.2.0

22 Jul 23:55
Compare
Choose a tag to compare

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).

1.1.0

19 May 19:49
Compare
Choose a tag to compare

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

28 Feb 21:01
Compare
Choose a tag to compare

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.
  • 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

31 Jan 19:20
Compare
Choose a tag to compare

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.