Signac

Latest version: v2.2.0

Safety actively analyzes 683530 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

2.2.0

---------------------

Added

- Official support for Python 3.12 (957).
- ``Job.cached_statepoint`` - cached and read only access to job state points. Faster than ``Job.statepoint`` (975).

Changed

- Restrict allowable tar file features in Python 3.12 (957).
- Linked views now can contain spaces and other characters except directory separators (926).
- Linked views now can be created on Windows, if 'Developer mode' is enabled (430, 958).
- Increase performance for many usage patterns (975).

Fixed

- Fixed parsing of ``$not`` query expressions on command line (970).

Removed

- Unused ``ruamel.yaml`` dependency (981).

2.1.0

What's Changed
* Fix README example init command. by bdice in https://github.com/glotzerlab/signac/pull/913
* Remove inaccurate guidance about doc filters being removed in 3.0. by bdice in https://github.com/glotzerlab/signac/pull/916
* Add more descriptive error if `sp` and `id` are not provided by cbkerr in https://github.com/glotzerlab/signac/pull/915
* Use synced_collections. by bdice in https://github.com/glotzerlab/signac/pull/924
* Remove numcodecs from docs. by bdice in https://github.com/glotzerlab/signac/pull/925
* CI: No longer test latest packages on Python 3.8 by b-butler in https://github.com/glotzerlab/signac/pull/938


**Full Changelog**: https://github.com/glotzerlab/signac/compare/v2.0.0...v2.1.0

2.0.0

---------------------

Added

- Official support for Python 3.11 (875).
- ``H5Store`` related errors are now included in the public API (775).
- Users can now access the project to which a job belongs with the ``Job.project`` attribute (808).

Changed

- Functions raising ``AssertionError`` now raise ``RuntimeError`` (612).
- State points and documents require keys to be of type ``str`` (719).
- The keyword ``_id`` of the Job constructor has been renamed to ``id_`` (681).
- The signac schema to use version 2. This update involves a number of changes:
- The project configuration is now stored at .signac/config instead of signac.rc or .signacrc (678).
- Schema versions are now identified by simple integers rather than semantic versioning style versions (688).
- Projects no longer have names and are identified solely by their root directories. This change also affects a number of public APIs where names are including, most prominently ``signac.init_project`` and ``Project.init_project``. Projects can now be constructed with just a root directory rather than a preloaded config (677, 684, 706).
- Project workspaces are no longer configurable, but are instead always defined as a subdirectory of the Project's root directory called ``workspace`` (714).
- Rather than searching upwards until the root, ``load_config`` will only load configuration files in the specified directory, which is assumed to be a project directory, as well as the user's home directory (711).
- Changed the ``root`` parameter to ``path`` in the ``signac.get_project`` and ``signac.init_project`` functions and corresponding ``Project`` methods (757, 758).
- The prefix argument to ``$ signac view`` is now optional and can be provided with ``-p/--prefix`` (653, 774).
- Tests are run with ``xfail_strict = True`` (850).
- Detection of an invalid config will raise an error rather than a debug log (855).
- The package namespace has been flattened so that most functionality is directly available in the ``signac`` namespace (756, 868).
- The ``calc_id`` function has been moved from the ``hashing`` module to the ``job`` module (873).
- Tests are run with all warnings treated as errors (871).
- The contents of the ``syncutil`` module have been moved into ``sync`` (869).
- The project now leverages a fully pyproject.toml-driven build (878).

Removed

- The pre-SyncedCollection synchronized dictionary classes, including SyncedDict, SyncedAttrDict, and JSONDict (577).
- The old custom JSON encoder and dumps wrapper (577).
- The MPIPool and the filesystems.py module (575).
- The following Project methods: ``get_id``, ``build_job_search_index``, ``build_job_statepoint_index``, ``find_job_ids``, ``reset_statepoint``, ``update_statepoint``, ``create_access_module``, ``index``, ``dump_statepoints``, ``get_statepoint``, ``read_statepoints``, ``write_statepoints``, ``groupbydoc``, ``root_directory``, ``num_jobs`` (574, 593, 599, 601, 752).
- The following Job methods: ``get_id``, ``workspace``, ``ws``, ``reset_statepoint`` (578, 752).
- The ``syncutil.copytree`` method (581).
- All Crawlers, including ``RegexFileCrawler``, ``MainCrawler``, ``MasterCrawler``, ``SignacProjectCrawler``, and ``BaseCrawler``, in addition to all associated functionality in indexing.py (580).
- The cite.py module (594).
- The following types of exceptions: ``AuthenticationError``, ``ExportError`, ``FetchError``, ``PermissionsError`` (595, 596).
- All MongoDB database functionality, including the ``db`` subpackage, the ``connection``, ``crypt``, and ``host`` submodules in the ``common`` subpackage, and all associated configuration information (576, 596).
- The ``JobSearchIndex`` class (587).
- The ability to pass indexes to various ``Project`` methods (599).
- The following ``JobsCursor`` methods: ``groupbydoc``, ``next`` (601, 604).
- The ``Project.config`` property is no longer mutable. Use the command line ``$ signac config`` to modify configuration (608, 246, 244).
- The config module and all its functions, all of which have been made private (674, 753, 789, 847, 877).
- ``Project`` subclasses can no longer define a ``Job`` subclass to use (588, 693).
- The ``Collection`` class (664, 667, 683).
- The ``project`` CLI subcommand (752).
- The ``--workspace`` option for the command line ``job`` subcommand (752).
- The ability to call ``Project.workspace``, it is strictly a property now (752).
- ``ProjectSchema.__call__``, ``ProjectSchema.detect`` (752).
- The ``--doc-filter`` option for several command line subcommands (613, 795).
- The public API of the ``synced_collection`` subpackage (807, 790).
- The warnings module (815).
- The signac.common.validate module (853).
- The ``Config`` class (860).
- The ``DictManager`` class (858).
- The ``signac.testing`` module (863).
- Zenodo is no longer updated (903).

1.8.0

---------------------

Added

- Official support for Python 3.10 (631).
- Benchmarks can be run using the `asv` (airspeed velocity) tool (629).
- Continuous integration tests run in parallel with `pytest-xdist` (705).
- The `Project.path` and `Job.path` properties (685).

Changed

- Schema migration is now performed on directories rather than signac projects and supports a wider range of schemas (654).
- Deprecated features now use `FutureWarning` instead of `DeprecationWarning`, which is hidden by default (687, 691, 692).
- Project names have a default in anticipation of removing names entirely. Project names will be removed in signac 2.0 (644).
- `Project.workspace` is now a property, not a method (685).
- Continuous integration uses GitHub Actions instead of CircleCI (776, 788).
- Raise errors in testing when `DeprecatedWarning`s or `FutureWarning`s are raised (713).
- Change GitHub PR to check for uncompleted tasks (i.e. unchecked checkboxes) (686).

Deprecated

- `Project` methods `read_statepoints`, `write_statepoints`, and `dump_statepoints` are deprecated (579, 197).
- `Project.index` method is deprecated (591, 588).
- `JobSearchIndex` class is deprecated (600).
- `index` argument is deprecated in ``Project`` methods (602, 588).
- `signac.cite` module is deprecated (611, 592).
- The `config` module and all its methods are deprecated (675, 753, 814).
- Accessing `Project.workspace` as a method, it should be accessed as a property (685).
- `Project.num_jobs` (685).
- `ProjectSchema.__call__`, `ProjectSchema.detect` (685).

Fixed

- `H5Store.mode` returns the file mode (607).
- User-provided path functions now raise an error if not unique (666).
- `Collection` class no longer raises an error when searching by a primary key that does not exist (676).
- Relative paths on Windows are not used if the current directory has no common prefix (777).
- `get_project()` now raises an error if provided a root directory that does not exist (779, 792).
- Catch internally raised warnings on use of deprecated password cache (754).
- Catch `KeyError` from multithreading error (710).
- Tests now properly show raised warnings (603).

Removed

- Removed upper bound of Python 4 on `python_requires` (780, 781).
- Dropped support for Python 3.6 and Python 3.7 (715) following the recommended support schedules of [NEP 29](https://numpy.org/neps/nep-0029-deprecation_policy.html).
- Dropped dependency on `deprecation` package (687, 718).
- Removed unused ``_extract`` utility function to avoid CVE-2007-4559 (829).

1.7.0

This release adds `SyncedCollection`s, a new, performant, and flexible approach to syncing job state points and documents with an underlying resource. Thanks to all who contributed! 🎨

Added

- New ``SyncedCollection`` class and subclasses to replace ``JSONDict`` with more general support for different types of resources (such as MongoDB collections or Redis databases) and more complete support for different data types synchronized with files (196, 234, 249, 316, 383, 397, 465, 484, 529, 530). This change introduces a minor-backwards incompatible change; for users making direct use of signac buffering, the ``force_write`` parameter is no longer respected. If the argument is passed, a warning will now be raised to indicate that it is ignored and will be removed in signac 2.0.
- Unified querying for state point and document filters using 'sp' and 'doc' as prefixes (332, 514). This change introduces a minor backwards-incompatible change to the ``Collection`` index schema ('statepoint'->'sp'), but this does not affect any APIs, only indexes saved to file using a previous version of signac. Indexing APIs will be removed in signac 2.0.

Changed

- Optimized internal path joins to speed up project iteration (515).

Deprecated

- ``doc_filter`` arguments, which are replaced by namespaced filters. Due to their long history, ``doc_filter`` arguments will still be accepted in signac 2.0 and will only be removed in 3.0 (516).
- The modules ``signac.core.attrdict``, ``signac.core.json``, ``signac.core.jsondict``, and ``signac.core.synceddict.py`` are deprecated in favor of the new ``SyncedCollection`` classes and will be removed in signac 2.0 (483).

Fixed

- Corrected docstrings for ``Job.update_statepoint`` and ``Project.update_statepoint`` (506, 563).

1.6.0

This release focuses on performance improvements and better docs. Large projects should see massive speedups (4-7x on an SSD) for iterating over the project and working with signac-flow. Now you can scale up your science! 🎨

Added

- Implemented ``JobsCursor.__contains__`` check (449).
- Added documentation for ``JobsCursor`` class (475).

Changed

- Optimized job hash and equality checks (442, 455).
- Optimized ``H5Store`` initialization (443).
- State points are loaded lazily when ``Job`` is opened by id (238, 239).
- Optimized ``Job`` and ``Project`` classes to cache internal properties and initialize on access (451).
- Python 3.6 is only tested with oldest dependencies (474).
- Improved documentation for updating and resetting state points (444).

Deprecated

- Deprecate ``syncutil.copytree`` method (439).

Fixed

- Zero-dimensional NumPy arrays can be used in state points and documents (449).

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.