Releases: glotzerlab/signac
Releases · glotzerlab/signac
1.2.0
Added
- Keep signac shell command history on a per-project basis (#134, #194).
- Add
read_json()
andto_json()
methods toCollection
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 theProject
,Job
, andJobsCursor
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
Added
- Add command line options
--sp
and--doc
forsignac 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 ofH5Group
andSyncedAttrDict
.
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 ofH5Group
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 ofCollection
(#186). - Fix issue with using the
get_project()
function with a relative path andsearch=False
(#191).
Removed
- Support for Python version 3.4 (no longer tested).
v1.0.0
Highlights
- Native integration of HDF5 files with the
H5Store
andH5StoreManager
, which are exposed as thejob.data
,job.stores
,project.data
, andproject.stores
properties respectively. - The newly added
signac.get_job()
function makes it easier to obtain instances ofJob
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
andH5StoreManager
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
andproject.data
properties which present an instance ofH5Store
to access numerical data within the job workspace and project root directory. - The
job.stores
andproject.stores
properties, which present an instance ofH5StoreManager
to manage multiple instances ofH5Store
to store numerical array-like data within the project workspace and project root directory. - The
signac.get_job()
and thesignac.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 asignac 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 aJSONDict
, e.g., ajob.statepoint
orjob.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
andJobsCursor
targeted at Jupyter Notebooks (requires pandas, automatically enabled when installed). - The
to_dataframe()
function to export the job state point and document data of aProject
or aJobsCursor
, e.g., the result ofProject.find_jobs()
, as apandas.Dataframe
(requires pandas).
Changed
- Dots (
.
) in keys are no longer allowed forJSONDict
andCollection
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 thejob.statepoint
orjob.document
, etc. - The
Job.init()
method returns the job to allow one-line job creation and initialization. - The
search
argument was added to thesignac.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, aKeyError
would be raised. - Fix issue where the
Job.move()
would trigger a confusingDestinationExists
exception when trying to move jobs across devices / file systems. - Fix issue that caused failures when the
python-rapidjson
package is installed. Thepython-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()
andProject.find_job_documents()
functions have been removed. - The
Project.find_jobs()
no longer accepts the obsoleteindex
argument.
v0.9.5
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.