Changelog ========= .. This comment block is a template for version release notes. v.. (--) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - (`# <>`__) Deprecations ^^^^^^^^^^^^ - (`# <>`__) New Features ^^^^^^^^^^^^ - (`# <>`__) Enhancements ^^^^^^^^^^^^ - (`# <>`__) Bug Fixes ^^^^^^^^^ - (`# <>`__) Internal Changes ^^^^^^^^^^^^^^^^ - (`# <>`__) v0.24.1 (2023-08-30) -------------------- New Features ^^^^^^^^^^^^ - add ``nvidia_gpu`` to :class:`~verta.endpoint.resources.Resources` for platforms that support GPU workers (`#4003 `__) - (alpha) add new properties to :class:`~verta.endpoint.build.Build` (`#4021 `__) v0.24.0 (2023-07-31) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - move vendored libraries from ``verta.external`` to ``verta._vendored`` (`#3893 `__) - remove ``model_packaging`` from model API (client now requires Verta platform ``>=2023_07``) (`#3881 `__) New Features ^^^^^^^^^^^^ - add support for `model schema validation `__ (`#3910 `__, `#3928 `__, `#3947 `__) - add support for `accessing request headers during predictions `__ (`#3957 `__) - add :meth:`RegisteredModelVersion.get_dataset_versions() ` (`#3802 `__) - add :meth:`RegisteredModel.set_pii() ` and :meth:`RegisteredModel.get_pii() ` (`#3835 `__, `#3839 `__) - add :obj:`Python.python_version ` (`#3945 `__) - add :obj:`RegisteredModelVersion.experiment_run_id ` (`#3950 `__) - (alpha) allow passing organization by ID or name to disambiguate workspaces (`#3878 `__, `#3940 `__) Internal Changes ^^^^^^^^^^^^^^^^ - remove header caching (`#3941 `__) v0.23.0 (2023-05-05) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - move :class:`~verta.endpoint.build.Build` from ``verta.endpoint`` to ``verta.endpoint.build`` (`#3749 `__) - remove deprecated ``always_retry_404`` and ``always_retry_429`` parameters from :meth:`DeployedModel.predict() ` (`#3772 `__) - remove deprecated ``DeployedModel.from_url()`` (`#3772 `__) New Features ^^^^^^^^^^^^ - add :meth:`RegisteredModelVersion.list_builds() ` (`#3759 `__) - add ``Build.date_created`` (`#3756 `__) - add :meth:`Build.get_scan() ` (`#3758 `__) - add :meth:`Build.start_scan() ` (`#3778 `__, `#3785 `__) - add :class:`~verta.endpoint.build.BuildScan` (`#3757 `__) - add :meth:`Client.get_kafka_topics() ` (`#3727 `__) Enhancements ^^^^^^^^^^^^ - make ``cluster_config_id`` optional in :class:`~verta.endpoint.KafkaSettings` (`#3727 `__) Bug Fixes ^^^^^^^^^ - replace ``method_whitelist`` with ``allowed_methods`` for ``urllib3>=2.0.0`` (`#3792 `__) - fix :meth:`Client.create_endpoint() `'s documented return type (`#3789 `__) v0.22.2 (2023-04-04) -------------------- New Features ^^^^^^^^^^^^ - add :func:`verta.registry.check_model_dependencies` (`#3641 `__, `#3676 `__) - add ``check_model_dependencies`` parameter to :meth:`RegisteredModel.create_standard_model() ` (`#3670 `__) - add :meth:`DeployedModel.batch_predict() ` (`#3645 `__) - add :meth:`VertaModelBase.batch_predict() ` (`#3673 `__) Internal Changes ^^^^^^^^^^^^^^^^ - remove ``date_updated`` timestamp from :class:`~verta.endpoint.Endpoint`\ s (`#3711 `__) v0.22.1 (2023-03-13) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - add ``importlib-metadata>=3.7.0`` dependency (`#3652 `__) New Features ^^^^^^^^^^^^ - add ``model_test()`` to ``VertaModelBase`` interface (`#3610 `__, `#3611 `__) Bug Fixes ^^^^^^^^^ - update ``verta.integrations.xgboost`` to use XGBoost's ``TrainingCallback`` interface (`#3649 `__) v0.22.0 (2023-02-07) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - remove ``DeployedModel.credentials``, ``DeployedModel.access_token`` (`#3332 `__) - effectively replace :meth:`DeployedModel.predict() ` and :meth:`DeployedModel.predict_with_id() `'s ``always_retry_404`` and ``always_retry_429`` parameters (which no longer have any effect) with ``retry_status``, and remove support for indefinite retries (`#3332 `__) - extend :meth:`DeployedModel.predict() ` and :meth:`DeployedModel.predict_with_id() `'s default retry loop from about 20 seconds to 10 minutes (`#3332 `__) - tighten ``requests`` dependency version lower constraint from ``>=2.21`` to ``>=2.25`` (`#3540 `__) - add ``urllib3>=1.26.0`` dependency (`#3549 `__) Deprecations ^^^^^^^^^^^^ - ``DeployedModel.from_url()``, in favor of directly instantiating :class:`~verta.deployment.DeployedModel` (`#3332 `__) New Features ^^^^^^^^^^^^ - allow :meth:`DeployedModel.predict() ` and :meth:`DeployedModel.predict_with_id() ` to take a custom user-defined ``prediction_id`` (`#3332 `__) - add ``backoff_factor`` parameter to :meth:`DeployedModel.predict() ` and :meth:`DeployedModel.predict_with_id() ` (`#3332 `__) - add model data logging via :func:`verta.runtime.log`, plus :class:`verta.runtime.context` for local testing (`#3500 `__, `#3544 `__, `#3550 `__, `#3567 `__, `#3569 `__) Bug Fixes ^^^^^^^^^ - update optimizer name field in Keras integration for ``tensorflow>=2.11.0`` (`#3424 `__) - raise more informative error when ``log_code()`` is called for unsupported objects (`#3557 `__) Internal Changes ^^^^^^^^^^^^^^^^ - refactor :class:`~verta.deployment.DeployedModel`'s HTTP session management (`#3332 `__) - remove ``Connection.get_personal_workspace()`` which was a fallback we no longer need (`#3404 `__) - remove ``Connection.get_workspace_name_from_legacy_id()`` which was a fallback we no longer need (`#3407 `__) - refactor client test utilities for permission V2 (`#3407 `__, `#3538 `__, `#3539 `__, `#3556 `__) v0.21.1 (2022-11-29) -------------------- New Features ^^^^^^^^^^^^ - add ``ModelVersion.log_dataset_version()``, ``get_dataset_version()``, and ``del_dataset_version()`` (`#3335 `__) Enhancements ^^^^^^^^^^^^ - have ``endpoint.get_deployed_model()`` use a backend-provided prediction URL when available (`#3290 `__) - alphabetically sort artifact, dataset version, and code version keys in model version repr (`#3340 `__) Internal Changes ^^^^^^^^^^^^^^^^ - apply Black formatting to the full codebase (`#3258 `__) v0.21.0 (2022-09-29) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - remove support (and prevent installation) for Python 2.7, 3.5, and 3.6 (`#3149 `__, `#3152 `__, `#3220 `__) - remove ``ExperimentRun.log_artifact_path()`` and ``ExperimentRun.log_image_path()`` (`#3159 `__) - remove clientside artifact storage (and the ``VERTA_ARTIFACT_DIR`` environment variable) (`#3160 `__) - remove ``ModelVersion.get_artifact_parts()`` and ``ExperimentRun.get_artifact_parts()`` (`#3162 `__) - remove ``ExperimentRun.log_dataset()`` (`#3165 `__) New Features ^^^^^^^^^^^^ - add support for Python 3.10 (`#3161 `__) - add support for registered model versions' ``input_description``, ``output_description``, ``hide_input_label``, and ``hide_output_label`` fields (`#3214 `__, `#3250 `__) Enhancements ^^^^^^^^^^^^ - return a friendlier error message when passing incorrect Verta credentials (`#3136 `__) - remove ``pathlib2`` dependency (`#3151 `__) - bump ``pyyaml`` dependency version upper constraint from ``<6.0`` to ``<7.0`` (`#3112 `__) - bump ``cloudpickle`` dependency upper version constraint from ``<2.0`` to ``<3.0`` (`#3106 `__) v0.20.4 (2022-09-12) -------------------- New Features ^^^^^^^^^^^^ - add ``VERTA_DISABLE_CLIENT_CONFIG`` environment variable to disable client config file discovery (`#3208 `__) Bug Fixes ^^^^^^^^^ - during client config file discovery, skip directories that cannot be read (`#3208 `__) v0.20.3 (2022-08-31) -------------------- New Features ^^^^^^^^^^^^ - add ``.url`` property to most entities (`#3071 `__) - add support for registered models' ``data_type`` and ``task_type`` fields (`#3079 `__, `#3086 `__) Enhancements ^^^^^^^^^^^^ - bump ``protobuf`` dependency version upper constraint from ``<3.18`` to ``<4.0`` (`#3070 `__) v0.20.2 (2022-04-27) -------------------- Enhancements ^^^^^^^^^^^^ - add ``cluster_config_id`` parameter to ``KafkaSettings`` (`#2988 `__) - bump click version constraint to ``<9.0`` (`#3014 `__) v0.20.1 (2022-04-11) -------------------- New Features ^^^^^^^^^^^^ - add model monitoring interface to deployment (`#2962 `__) v0.20.0.post0 (2022-04-11) -------------------------- Bug Fixes ^^^^^^^^^ - fix issue where the package couldn't be built from source (`#2986 `__) v0.20.0 (2022-04-08) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``DeployedModel`` can no longer be directly instantiated from a run ID (though it usually shouldn't be directly instantiated anyway) (`#2727 `__) - ``ExperimentRun.deploy()`` and related methods have been removed in favor of ``Endpoint`` (`#2740 `__) - custom module collection now favors pip-installed libraries over local directories with the same name (`#2805 `__) - ``verta.monitoring`` and ``Client.monitoring`` have been removed (`#2812 `__) New Features ^^^^^^^^^^^^ - support JWT cookies as an authn mechanism (`#2716 `__, `#2738 `__, `#2737 `__, `#2928 `__) - add explicit credentials parameter to ``get_deployed_model()`` (`#2727 `__) - add ``ModelError`` exception for use in Verta Standard Models (`#2735 `__) - support ``pip install verta[unit_tests]`` for optional testing dependencies (`#2788 `__) - add ``RegisteredModelVersion.log_setup_script()`` (`#2873 `__) Enhancements ^^^^^^^^^^^^ - don't include spaCy models and ``anaconda-client`` in ``read_pip_environment()`` (`#2709 `__) - bump PyYAML version constraint to ``<6.0`` (`#2718 `__) - warn instead of error on version mismatch of ``verta`` and ``cloudpickle`` in environment versioning (`#2723 `__) Bug Fixes ^^^^^^^^^ - make sure everything subclasses ``object`` (`#2748 `__) - add validation for the ``artifacts`` parameter in ``RegisteredModelVersion.log_model()`` (`#2783 `__) - support directly deploying models that come from ``keras`` rather than ``tensorflow.python.keras`` (`#2872 `__) - properly fall back to client config file if an environment variable isn't set (`#2875 `__) v0.19.3 (2021-10-29) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - validate ``VertaModelBase.__init__()`` parameter names in ``RegisteredModel.create_standard_model()`` (`#2570 `__) - remove ``ExperimentRun.log_requirements()`` (`#2584 `__) - remove ``ExperimentRun.log_model_for_deployment()`` (`#2584 `__) - ``Python.read_pip_file()`` and ``Python.read_pip_environment()`` now include previously-unsupported lines rather than skipping them by default (`#2584 `__) New Features ^^^^^^^^^^^^ - add ``SummarySample.is_aggregate`` (`#2555 `__) - fall back to logging raw requirements if manual parsing fails (`#2584 `__, `#2643 `__, `#2676 `__) - support setting custom environment variables in environment objects (`#2634 `__) - add ``Docker`` environment object (`#2636 `__) - support ``Docker`` in ``log_environment()``/``get_environment()`` (`#2637 `__) - add ``DockerImage`` and ``RegisteredModelVersion.log_docker()`` (`#2641 `__) - add ``RegisteredModel.create_containerized_model()`` (`#2648 `__) - add support for updating endpoints with existing builds (`#2685 `__) Bug Fixes ^^^^^^^^^ - return zero-valued samples from ``profile_point()`` (`#2556 `__) - avoid divide-by-zero when a histogram's buckets add to zero (`#2554 `__) Internal Changes ^^^^^^^^^^^^^^^^ - rename ``remove_public_version_identifier()`` to ``remove_local_version_identifier()`` (`#2601 `__) - move ``_get_artifact_msg()`` to ``_DeployableEntity`` interface (`#2626 `__) - add ``_MODEL_KEY`` to ``_DeployableEntity`` interface (`#2628 `__) - save metadata in ``Artifact`` proto when logging model (`#2592 `__) - add ``ensure_starts_with_slash()`` (`#2640 `__) v0.19.2 (2021-09-30) -------------------- New Features ^^^^^^^^^^^^ - add ``RegisteredModelVersion.change_stage()`` (`#2654 `__) Bug Fixes ^^^^^^^^^ - restrict ``protobuf`` dependency version upper constraint from ``<4.0`` to ``<3.18`` `for Python 2 compatibility `__ (`#2633 `__) v0.19.1 (2021-08-09) -------------------- New Features ^^^^^^^^^^^^ - add ``@verify_io`` decorator for use with ``VertaModelBase.predict()`` (`#2540 `__) Enhancements ^^^^^^^^^^^^ - paginate ``alerts.list()`` (`#2525 `__) Bug Fixes ^^^^^^^^^ - filter out ``lib32/`` and ``lib64/`` when collecting custom modules (`#2534 `__) - pick up environment variables (such as ``REQUESTS_CA_BUNDLE``) for HTTP requests (`#2535 `__) v0.19.0 (2021-08-03) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - remove Repository (`#2498 `__) New Features ^^^^^^^^^^^^ - enable extra headers to be passed on requests (`#2510 `__) - add ``RegisteredModelVersion.log_code_version()`` (`#2523 `__) - enable Kafka configuration on endpoints (if supported by Verta backend) (`#2488 `__, `#2520 `__) Enhancements ^^^^^^^^^^^^ - batch requests in ``log_training_data_profile()`` for a drastic speedup (`#2511 `__) - allow ``RegisteredModel.create_version_from_run()`` to take a run object (`#2500 `__) Bug Fixes ^^^^^^^^^ - properly promote naïve datetimes in Python 2 (`#2506 `__) Internal Changes ^^^^^^^^^^^^^^^^ - include non-public fields in ``Alert.summary_sample_base`` (`#2519 `__) v0.18.2 (2021-07-14) -------------------- New Features ^^^^^^^^^^^^ - add convenience functions to create ready-to-deploy standard Verta model versions (`#2397 `__, `#2450 `__, `#2486 `__) - add model_version.log_training_data_profile() for deployment monitoring (`#2434 `__, `#2446 `__, `#2457 `__, `#2484 `__) - `add profile_point() to profilers `__ - `support specifying start_time and end_time on experiment runs `__ Enhancements ^^^^^^^^^^^^ - `propagate model logs when a deployment fails during initialization `__ - `hide internal attributes from histogram __repr__()s `__ Bug Fixes ^^^^^^^^^ - `resolve a ParseError for the "UNASSIGNED" model_version stage `__ - `fix bug where NumericValues were deserialized inconsistently when "unit" is empty `__ - `fix bug where ContinuousHistogramProfiler was unable to handle missing data `__ - `allow alerts to properly handle samples of past time windows `__ Internal Changes ^^^^^^^^^^^^^^^^ - `deprecate verta._internal_utils._histogram_utils `__ v0.18.1 (2021-06-17) -------------------- Enhancements ^^^^^^^^^^^^ - `raise warning when duplicate attributes are ignored in model versions `__ Bug Fixes ^^^^^^^^^ - `fix zip-unzip magic for directories logged with run.log_model() `__ v0.18.0 (2021-06-11) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `rename with_workspace(workspace_name) parameter to with_workspace(workspace) `__ - move formerly-private modules and entity classes to public import paths (`#2011 `__, `#2308 `__, `#2313 `__, `#2314 `__) - `set upper version bounds on dependency libraries `__ - `add pytimeparse as a dependency `__ - `hide sklearn integration's internally-used functions `__ Deprecations ^^^^^^^^^^^^ - `log_training_data(), being superseded by new monitoring functionality `__ - `log_requirements(), being superseded by log_environment() `__ - `TFSavedModel utility, long-since superseded by Standard Verta Models `__ New Features ^^^^^^^^^^^^ - add monitoring sub-client (`#2077 `__, `#2096 `__, `#2097 `__, `#2095 `__, `#2091 `__, `#2133 `__, `#2120 `__, `#2126 `__, `#2134 `__, `#2145 `__, `#2159 `__, `#2162 `__, `#2164 `__, `#2182 `__, `#2186 `__, `#2187 `__, `#2184 `__, `#2200 `__, `#2201 `__, `#2212 `__, `#2252 `__, `#2262 `__, `#2263 `__, `#2269 `__, `#2317 `__, `#2318 `__, `#2332 `__, `#2326 `__, `#2348 `__, `#2355 `__, `#2356 `__, `#2360 `__, `#2370 `__, `#2374 `__, `#2399 `__) - `allow setting workspace through environment variable `__ - `add apt_packages to Python() `__ - `add NumericValue and StringValue to verta.data_types `__ - `add verta.registry.VertaModelBase for Standard Verta Models `__ Enhancements ^^^^^^^^^^^^ - `add __repr__()s to verta.data_types `__ Bug Fixes ^^^^^^^^^ - `return path from download_model() `__ - `support mismatched buckets for discrete histogram data_type `__ - `remove local version identifier from captured library version numbers to unblock deployment `__ Internal Changes ^^^^^^^^^^^^^^^^ - `use __subclasses__() instead of a manual list `__ - `add client._conn.email `__ - `rewrite __module__s to public import paths `__ - `move verta._dataset_versioning to verta.dataset.entities `__ v0.17.6 (2021-04-23) -------------------- New Features ^^^^^^^^^^^^ - `add download_artifact() and download_model() to RegisteredModelVersion `__ v0.17.5 (2021-04-14) -------------------- Bug Fixes ^^^^^^^^^ - `unzip directory models in run.download_model() `__ v0.17.4 (2021-03-26) -------------------- New Features ^^^^^^^^^^^^ - `support logging structured data types as run attributes `__ - `support getting back structured data type attributes `__ - `enable manually specifying page limit for _LazyList iteration `__ Bug Fixes ^^^^^^^^^ - `properly paginate _LazyList requests `__ v0.17.3 (2021-03-17) -------------------- New Features ^^^^^^^^^^^^ - `set and get lock levels on model versions `__ Enhancements ^^^^^^^^^^^^ - `add stage to model version repr `__ - `follow symlinks when collecting custom modules `__ Bug Fixes ^^^^^^^^^ - `properly propagate 403s/404s when updating registry entities `__ Internal Changes ^^^^^^^^^^^^^^^^ - `move verta._registry to verta.registry._entities `__ - `make client's debug cURL util more readable `__ v0.17.2 (2021-02-26) -------------------- New Features ^^^^^^^^^^^^ - `enable finding model versions based on stage `__ v0.17.1 (2021-02-24) -------------------- New Features ^^^^^^^^^^^^ - `add run.log_environment() `__ - `add run.download_model() `__ Enhancements ^^^^^^^^^^^^ - `support arbitrary models in run.log_model() `__ - `skip custom modules and model API when logging an arbitrary model `__ - `unzip artifact directories in run.download_artifact() `__ Internal Changes ^^^^^^^^^^^^^^^^ - `rename artifact key blocklist `__ - `consolidate chunk sizes with named constants `__ v0.17.0 (2021-02-16) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `in newer backends, an entity created in an organization will use that organization's permissions settings by default, instead of defaulting to private `__ New Features ^^^^^^^^^^^^ - `add client.set_workspace() and client.get_workspace() `__ - `enable new visibility values for newer backends `__ - `enable passing PySpark models to run.log_model() `__ - `add Path.with_spark() `__ Enhancements ^^^^^^^^^^^^ - `for custom modules files, grant non-owners read access `__ - `remove "file:" prefix from path datasets `__ Internal Changes ^^^^^^^^^^^^^^^^ - `consolidate workspace helper methods into Connection `__ - `add Connection methods for personal and default workspace `__ - `prevent test teardowns from resulting in 403s `__ v0.16.5 (2021-01-26) -------------------- New Features ^^^^^^^^^^^^ - `add parameter to disable autocapture in Git() and run.log_code() `__ - `add is_dirty parameter to Git() `__ - `add is_dirty parameter to run.log_code() `__ - `add public attributes to Git() objects `__ Internal Changes ^^^^^^^^^^^^^^^^ - `constrain pyyaml to <5.4 to avoid build dependency on C `__ v0.16.4 (2021-01-14) -------------------- Internal Changes ^^^^^^^^^^^^^^^^ - `send Grpc-Metadata-developer-key (hyphen instead of underscore) as an additional auth header `__ v0.16.3 (2020-12-18) -------------------- Bug Fixes ^^^^^^^^^ - `fix AttributeError when using public_within_org=True `__ v0.16.2 (2020-12-16) -------------------- Bug Fixes ^^^^^^^^^ - `fix bug where set_registered_model() and set_dataset() unset the client's active project `__ v0.16.1 (2020-12-14) -------------------- New Features ^^^^^^^^^^^^ - `enable managed versioning for dataset versions `__ v0.16.0 (2020-12-09) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `overhaul dataset versioning API `__ New Features ^^^^^^^^^^^^ - `add HDFS dataset blob type `__ v0.15.9 (2020-11-21) -------------------- New Features ^^^^^^^^^^^^ - `enable find() to take *args rather than a single list `__ Bug Fixes ^^^^^^^^^ - `remove limitation on searching for runs by tag `__ - `temporarily disable continuing interrupted multipart uploads `__ v0.15.8 (2020-11-17) -------------------- New Features ^^^^^^^^^^^^ - `add public_within_org param to Client.get_or_create_endpoint() `__ Enhancements ^^^^^^^^^^^^ - `propagate HTTP error messages for Client init errors `__ - `display a simpler error message for backend errors `__ v0.15.7 (2020-11-05) -------------------- New Features ^^^^^^^^^^^^ - `support logging models serialized with torch.save() `__ - `enable continuing previously-interrupted multipart uploads `__ Enhancements ^^^^^^^^^^^^ - `ignore folders themselves in old-style S3 dataset versioning `__ - `ignore .git/ for custom modules `__ - `raise warning when metadata are provided to get_or_create_*() `__ - `add print to Dataset.get_latest_version() `__ - `have custom modules ignore libraries in __pycache__/ `__ - `catch Keras serialization error with h5py v3.0.0 `__ v0.15.6 (2020-10-02) -------------------- New Features ^^^^^^^^^^^^ - `add ModelVersions.with_workspace() `__ - `add public_within_org param to Client.get_or_create_repository() `__ Enhancements ^^^^^^^^^^^^ - `allow custom modules to handle non-PyPI pip-installed packages `__ - `propagate build errors during endpoint updates `__ - `use DirectUpdateStrategy as a default strategy for endpoint updates `__ - `add broader log-requirements support for modules whose PyPI names use dashes instead of underscores `__ - `raise more informative error parsing attributes in CLI `__ Bug Fixes ^^^^^^^^^ - `fix bug where CPU could not be empty for endpoint resources `__ Internal Changes ^^^^^^^^^^^^^^^^ - `refactor client.set_repository() to attempt get before create `__ - `use backend implementation of experiment run clone `__ v0.15.4 (2020-09-09) -------------------- Bug Fixes ^^^^^^^^^ - `fix bug where a DatasetVersion could not be retrieved for certain protobuf configurations `__ v0.15.3 (2020-09-08) -------------------- New Features ^^^^^^^^^^^^ - `add DatasetVersion.list_components() and DatasetVersion.base_path `__ - `enable cloning a run into another experiment `__ - `add delete() to most entities `__ Enhancements ^^^^^^^^^^^^ - `support Python 3.8 `__ - `add self_contained param to download_docker_context() `__ Bug Fixes ^^^^^^^^^ - `fix bug where log_model(overwrite=True) didn't work with custom model artifacts `__ - `properly raise an error when re-logging an environment to a model version `__ v0.15.2 (2020-08-28) -------------------- Enhancements ^^^^^^^^^^^^ - `add retries for all client connection errors `__ v0.15.1 (2020-08-24) -------------------- Bug Fixes ^^^^^^^^^ - `correctly log model artifacts attribute to enable custom models with dependencies `__ v0.15.0 (2020-08-24) -------------------- New Features ^^^^^^^^^^^^ - `Verta model registry `__ - `Verta endpoints `__ Enhancements ^^^^^^^^^^^^ - `expand custom modules virtual environment filter `__ Bug Fixes ^^^^^^^^^ - `fix bug where multipart upload loop may have an undefined variable in the event of connection errors `__ - `fix bug where getting a dataset version from another workspace may fail `__ v0.14.17 (2020-08-13) --------------------- New Features ^^^^^^^^^^^^ - `add DeployedModel.get_curl() `__ - `add ExperimentRun.get_artifact_keys() `__ Bug Fixes ^^^^^^^^^ - `fix inability to get others' shared personal Projects and Datasets `__ Internal Changes ^^^^^^^^^^^^^^^^ - `add util to convert requests to cURL `__ v0.14.16 (2020-08-06) --------------------- New Features ^^^^^^^^^^^^ - `add URL to Project.__repr__() `__ - `add client.create_*() for core ModelDB entities `__ Internal Changes ^^^^^^^^^^^^^^^^ - `make model container paths configurable through environment variables `__ v0.14.15 (2020-07-28) --------------------- Bug Fixes ^^^^^^^^^ - `nicely display stack traces from prediction errors `__ v0.14.14 (2020-07-28) --------------------- Bug Fixes ^^^^^^^^^ - `fix error when accessing a shared project in an organization `__ v0.14.13 (2020-07-24) --------------------- Enhancements ^^^^^^^^^^^^ - `add more possible keys for _LazyList.find() `__ - `print full response body for HTTP errors `__ Bug Fixes ^^^^^^^^^ - `fix artifact download when $TMPDIR is in a different filesystem `__ - `clear cache after every ExperimentRun logs `__ - `fix TypeError in _LazyList.with_workspace(None) `__ Internal Changes ^^^^^^^^^^^^^^^^ - `move verta/deployment.py to verta/deployment/ `__ v0.14.12 (2020-07-16) --------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `run.log_dataset() now only accepts DatasetVersion objects `__ - `verta.environment.Python now requires its requirements parameter `__ New Features ^^^^^^^^^^^^ - `add client.get_project(), get_experiment(), and get_experiment_run() `__ - `add client.projects and client.experiments `__ - `add expt_runs.as_dataframe() `__ - `add list_components() to data versioning blobs `__ - `implement addition for data versioning blobs `__ - `add add() to data versioning blobs `__ - `add run.download_deployment_crd() `__ - `add run.download_docker_context() `__ Enhancements ^^^^^^^^^^^^ - `speed up verta import time by deferring external imports `__ - `cache calls to get metrics and hyperparameters `__ - `include UTC timestamps in HTTPError messages `__ - `attempt torch.load() first in run.get_artifact() `__ Bug Fixes ^^^^^^^^^ - `use parent for commit.log() if the commit is unsaved `__ Internal Changes ^^^^^^^^^^^^^^^^ - `partially refactor versioning blobs `__ - `split ModelDB entities into their own files `__ - `refactor ModelDB entity gets/creates `__ - `add pylint config to repo `__ v0.14.11 (2020-06-26) --------------------- New Features ^^^^^^^^^^^^ - `add visibility for date created & updated on ExperimentRuns `__ v0.14.10 (2020-06-22) --------------------- Bug Fixes ^^^^^^^^^ - `use a proper default for VERTA_ARTIFACT_DIR `__ v0.14.9 (2020-06-22) -------------------- Bug Fixes ^^^^^^^^^ - `expand user directory for clientside artifact storage environment variable `__ v0.14.8 (2020-06-22) -------------------- New Features ^^^^^^^^^^^^ - `enable clientside artifact storage `__ - `add epoch_num parameter to run.log_observations() `__ - `add run.download_artifact() `__ Internal Changes ^^^^^^^^^^^^^^^^ - `add fixture for running tests in isolated directories `__ v0.14.7 (2020-06-18) -------------------- New Features ^^^^^^^^^^^^ - `add workspace parameter to find_datasets() `__ Enhancements ^^^^^^^^^^^^ - `print part numbers during multipart upload `__ - `retry part uploads on connection errors `__ - `read bytestreams in chunks `__ - `enable fuzzy find by name in find_datasets() `__ - `raise more informative error on non-JSON response bodies `__ Bug Fixes ^^^^^^^^^ - `always set grpc-metadata-source header, even in no-auth `__ - `typecheck tags `__ - `don't follow 302s `__ Internal Changes ^^^^^^^^^^^^^^^^ - `add _path_component_blobs attribute for dataset blobs `__ - `handle protos refactor `__ v0.14.6 (2020-05-29) -------------------- New Features ^^^^^^^^^^^^ - `enable multipart artifact uploads `__ Bug Fixes ^^^^^^^^^ - `fix Notebook Blob repr `__ - `support NumPy bool_ and pandas 1.X in ModelAPI `__ - `ignore folders in S3 versioning Blobs `__ - `inject verta and cloudpickle into Python environment Blobs `__ - `blocklist deployment artifact keys `__ Internal Changes ^^^^^^^^^^^^^^^^ - `remove logic duplication for fixing NFS URLs `__ - `calculate SHA-256 checksums for artifacts in chunks `__ v0.14.5 (2020-05-13) -------------------- New Features ^^^^^^^^^^^^ - `support logging Keras models in TensorFlow 2.X `__ - `support eagerly-executed TensorFlow Tensors in ModelAPI `__ Bug Fixes ^^^^^^^^^ - `filter out spaCy models when versioning pip requirements files `__ v0.14.4 (2020-05-04) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `run.log_training_data() no longer uploads a "train_data" artifact, and instead directly generates a histogram for deployment data monitoring `__ v0.14.3 (2020-04-20) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `replace commit.branch() with commit.new_branch() `__ New Features ^^^^^^^^^^^^ - `enable passing in ~ as part of filepaths `__ - `enable setting host from $VERTA_HOST `__ - `capture versioning information from S3 `__ Internal Changes ^^^^^^^^^^^^^^^^ - `add click as a dependency in preparation for CLI development `__ - `use back end for commit merges `__ - `use back end for commit reverts `__ v0.14.2 (2020-04-01) -------------------- New Features ^^^^^^^^^^^^ - `use friendly default messages for merges and reverts `__ - `implement __repr__ for Blobs `__ Bug Fixes ^^^^^^^^^ - `filter out spaCy models from pip freeze `__ - `make dataset.dataset_type friendlier `__ - `enable e.g. Notebook Blobs to be retrieved from a Commit outside of Notebooks `__ - `enable set_repository() without Verta authentication credentials `__ - `validate Client config file against protobuf spec `__ - `add more helpful typechecks on Commit methods `__ Internal Changes ^^^^^^^^^^^^^^^^ - `update protobufs for diffapi changes `__ - `fix race condition when running parallel tests `__ - `update tests to delete children Commits first `__ v0.14.1 (2020-03-17) -------------------- New Features ^^^^^^^^^^^^ - `add complete versioning system `__ - `enable going directly from Client to ExperimentRun using Verta config `__ - `add public_within_org option for set_project() and set_dataset() `__ - `add aliases for Client's set/get-or-create methods `__ Bug Fixes ^^^^^^^^^ - `enable larger sets of ExperimentRuns to be queried `__ - `enable ZIPing files that have invalid timestamps `__ Internal Changes ^^^^^^^^^^^^^^^^ - `move cloned dependencies to their own submodule `__ - `move internal utils into their own submodule `__ v0.14.0 (2020-02-11) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `require token in DeployedModel::from_url(), even if it's None `__ New Features ^^^^^^^^^^^^ - `add a workspace parameter to client.set_project() and client.set_dataset() `__ - `enable logging singleton scalar NumPy arrays as metrics `_ - `implement Keras Client integration `__ - `implement PyTorch Client integration `__ - `implement scikit-learn Client integration `__ - `implement TensorFlow Client integration `__ - `implement TensorBoard Client integration `__ - `implement XGBoost Client intergation `__ Bug Fixes ^^^^^^^^^ - `allow negative numbers in Python 3 expt_runs.find() queries `__ Internal Changes ^^^^^^^^^^^^^^^^ - `interpret HTTP 403s on getProject as project not found `__ - `include gorilla as internal dependency `__ - `explicitly include ModelDB in RPC endpoints `__ v0.13.19 (2020-01-08) --------------------- New Features ^^^^^^^^^^^^ - `enable overwriting code and dataset versions `__ - `unpack tarballs in run.fetch_artifacts() `__ Bug Fixes ^^^^^^^^^ - `include virtual environment-like directories when automatically logging custom modules `__ v0.13.18 (2019-12-12) --------------------- New Features ^^^^^^^^^^^^ - `add run.clone() `__ - `add a decorator for models' predict() to handle argument unpacking `__ Bug Fixes ^^^^^^^^^ - `properly propagate deployment error messages `__ - `enable calling run.deploy() and run.undeploy() even if the run is already deployed / not deployed `__ - `properly handle Python 2 string types in querying methods `__ v0.13.17 (2019-12-05) --------------------- Deprecations ^^^^^^^^^^^^ - `utils.TFSavedModel, in favor of the class-as-model system `__ New Features ^^^^^^^^^^^^ - `enable passing more datatypes into DeployedModel.predict() `__ - `add overwrite flag to most artifact logging functions `__ - `enable deployment through ExperimentRun objects `__ - `add a decorator for models' predict() to handle datatype conversion `__ - `only default to https for endpoints hosted by Verta `__ Internal Changes ^^^^^^^^^^^^^^^^ - `remove external dependency on six `__ v0.13.16 (2019-12-02) --------------------- New Features ^^^^^^^^^^^^ - `enable logging directories as ZIP archives with log_artifact() `__ v0.13.15 (2019-11-27) --------------------- New Features ^^^^^^^^^^^^ - `support logging classes as models `__ - `support associating artifact dependencies with Standard Verta Models `__ - `enable downloading artifacts into a local cache for use with Standard Verta Models `__ v0.13.14 (2019-11-19) --------------------- New Features ^^^^^^^^^^^^ - `enable indefinite retries on prediction 404s `__ v0.13.13 (2019-11-18) --------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `ExperimentRun.log_model() now no longer accepts a user-defined key, and is intended for deployment `__ Deprecations ^^^^^^^^^^^^ - `ExperimentRun.log_model_for_deployment(), in favor of more modular logging functions `__ New Features ^^^^^^^^^^^^ - `implement ExperimentRun.log_requirements() `__ - `implement ExperimentRun.log_training_data() `__ - `make prediction token optional in DeployedModel::from_url() `__ Bug Fixes ^^^^^^^^^ - `retry predictions on non-model 502s `__ v0.13.12 (2019-11-07) --------------------- New Features ^^^^^^^^^^^^ - `enable indefinite retries on prediction 429s `__ Bug Fixes ^^^^^^^^^ - `accommodate external 502s on predictions `__ Internal Changes ^^^^^^^^^^^^^^^^ - `pass host URL scheme to back end `__ - `reduce dataset version name collisions in tests `__ v0.13.11 (2019-10-30) --------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `slightly bump dependency versions and remove grpcio `__ Bug Fixes ^^^^^^^^^ - `obtain DatasetVersion timestamps robustly for Python 2 `__ Internal Changes ^^^^^^^^^^^^^^^^ - `clean up Datasets generated during tests `__ - `skip tests on missing imports instead of failing `__ v0.13.10 (2019-10-27) --------------------- Bug Fixes ^^^^^^^^^ - `fix bug with locally-hosted artifact stores `__ Internal Changes ^^^^^^^^^^^^^^^^ - `update notebooks `__ v0.13.9 (2019-10-17) -------------------- Bug Fixes ^^^^^^^^^ - `replace json.JSONDecodeError for Python 2 `__ - `remove check for Verta credentials from DeployedModel::from_url() `__ - `properly resolve relative paths in deployment for custom modules `__ - `enable uploading non-Python artifacts `__ - `enable consistent retrieval of models for Python 2 `__ Internal Changes ^^^^^^^^^^^^^^^^ - `add retries for HTTP 502s `__ v0.13.8 (2019-10-03) -------------------- New Features ^^^^^^^^^^^^ - `enable logging a setup script for the beginning of model deployment `__ - `add verta to uploaded requirements if not present `__ Internal Changes ^^^^^^^^^^^^^^^^ - `revise pytests `__ v0.13.7 (2019-09-18) -------------------- New Features ^^^^^^^^^^^^ - `accept key prefixes for S3DatasetVersion `__ - `implement verta.deployment.DeployedModel `__ Bug Fixes ^^^^^^^^^ - `enable code version to be downloaded as a ZIP archive through the Web App `__ - `fix bug in run.get_dataset_version() `__ - `fix bug in dataset.get_latest_version() `__ - `catch all unpickling-related errors in get_artifact() `__ Internal Changes ^^^^^^^^^^^^^^^^ - `keep cell execution numbers in example notebooks `__ v0.13.6 (2019-09-05) -------------------- Bug Fixes ^^^^^^^^^ - `fix small bugs in the _dataset submodule `__ Internal Changes ^^^^^^^^^^^^^^^^ - `update protos `__ v0.13.5 (2019-09-05) -------------------- Bug Fixes ^^^^^^^^^ - `fix various bugs in the _dataset submodule `__ v0.13.3 (2019-09-04) -------------------- Deprecations ^^^^^^^^^^^^ - `client.expt_runs, because its meaning is ambiguous; proj.expt_runs and expt.expt_runs are preferred `__ - `ret_all_info parameter in querying methods, because it returns user-unfriendly objects `__ New Features ^^^^^^^^^^^^ - `implement client.set_experiment_run(id=…) `__ - `implement dataset retrieval functions `__ - `propagate error messages from the back end `__ Bug Fixes ^^^^^^^^^ - `support run.get_*() when the value is None `__ - `fix bug where Project, Experiment, and ExperimentRun objects couldn't be pickled `__ - `fix bug when Datasets are created in Python 2 `__ - `log DatasetVersion timestamps as milliseconds, as expected by the Web App `__ - `fix bug when the working directory is captured by run.log_modules() `__ - `fix bug when run.log_modules() is used in Python 2 `__ - `fix bug when querying methods are called from an empty ExperimentRuns `__ - `perform basic key validation in querying methods `__ Internal Changes ^^^^^^^^^^^^^^^^ - `create testing fixtures for deterministic input spaces `__ - `fix data versioning tests `__ - `fix non-artifact tests `__ - `fix artifact tests `__ - `implement model logging tests `__ - `implement basic querying method tests `__ v0.13.2 (2019-08-20) -------------------- New Features ^^^^^^^^^^^^ - `add ExperimentRun.get_dataset_version() `__ v0.13.1 (2019-08-20) -------------------- Bug Fixes ^^^^^^^^^ - `handle more states in DatasetVersion.__repr__() `__ v0.13.0 (2019-08-20) -------------------- New Features ^^^^^^^^^^^^ - `enable file extensions on artifacts in the Web App `__ - `support basic data versioning `__ Bug Fixes ^^^^^^^^^ - `convert everything to new-style classes for Python 2 compatibility `__ Internal Changes ^^^^^^^^^^^^^^^^ - `support dynamically fetching custom deployment URLs `__ - `make Pillow an optional dependency `__ - `support potentially handling a 401 on verifyConnection `__ v0.12.9 (2019-08-13) -------------------- New Features ^^^^^^^^^^^^ - `support passing in a full URL as the host parameter to Client() `__ Bug Fixes ^^^^^^^^^ - `fix bugs regarding logging and retrieving datasets `__ Internal Changes ^^^^^^^^^^^^^^^^ - `propagate more deployment errors to the Client `__ v0.12.8 (2019-08-08) -------------------- Internal Changes ^^^^^^^^^^^^^^^^ - bump patch version to 8, to celebrate August 8th - `handle getting Verta environment variables more consistently `__ v0.12.7 (2019-08-08) -------------------- New Features ^^^^^^^^^^^^ - `support logging functions for deployment `__ - `ignore virtual environment directories when logging custom modules for deployment `__ Bug Fixes ^^^^^^^^^ - `define source code UTF-8 encoding for Python 2 compatibility `__ - `use new-style classes for Python 2 compatibility `__ Internal Changes ^^^^^^^^^^^^^^^^ - `implement DeployedModel::from_url() factory method `__ - `propagate runtime errors to the Client during DeployedModel.predict() `__ - `add custom module logging example notebook `__ v0.12.6 (2019-08-01) -------------------- New Features ^^^^^^^^^^^^ - `implement a compress parameter on demo predict utility to enable request body compression `__ Internal Changes ^^^^^^^^^^^^^^^^ - `reduce redundancies in demo predict utility `__ v0.12.5 (2019-07-26) -------------------- New Features ^^^^^^^^^^^^ - `implement a debug parameter and attribute on Client to print verbose debugging information `__ v0.12.4 (2019-07-25) -------------------- New Features ^^^^^^^^^^^^ - `remove the need for log_modules()'s second argument (search_path) `__ v0.12.3 (2019-07-17) -------------------- Bug Fixes ^^^^^^^^^ - `ensure ModelAPI value names are cast to str `__ Internal Changes ^^^^^^^^^^^^^^^^ - `identify model types by superclass `__ - `update example notebooks with proper ModelAPI instantiation `__ - `update demo notebook with log_code() `__ v0.12.2 (2019-07-16) -------------------- Bug Fixes ^^^^^^^^^ - `move Git repo check from Client init to log_code() `__ v0.12.1 (2019-07-16) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `The non-public prediction utility now uses our updated REST prediction endpoint `__ New Features ^^^^^^^^^^^^ - `implement log_code() and get_code() for code versioning `__ - `allow periods in Artifact get functions `__ - `enable retrieving integers as integers (instead of as floats) from the back end `__ Bug Fixes ^^^^^^^^^ - `catch and raise duplicate column name error on ModelAPI initialization `__ - `properly handle daylight saving time when logging observation timestamps `__ Internal Changes ^^^^^^^^^^^^^^^^ - `implement internal Configuration utility struct `__ - `add PyTorch example notebook `__ - `implement internal utility for unwrapping directory paths into contained filepaths `__ - `implement internal utilities for reading Git information from the local filesystem `__ - `implement internal utilities for finding executing Python source files `__ - `implement internal utility for getting the file extension from a filepath `__ - `log file extensions with Artifacts `__ v0.12.0 (2019-06-27) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `The dump() and load() functions have been removed from the public utils module. `__ New Features ^^^^^^^^^^^^ - `implement ignore_conn_err parameter and attribute to Client `__ - `implement log_modules() for uploading custom Python modules for deployment `__ Bug Fixes ^^^^^^^^^ - `enable logging lists, and dictionaries with string keys, as attributes on client.set_*() to match run.log_attribute() `__ - `simplify stack traces by suppressing contexts during handling for a remaining handful of raise statements `__ - `add missing error message to get_observation() `__ Internal Changes ^^^^^^^^^^^^^^^^ - `use internal Connection utility object for connection configuration `__ - `define Artifact Store bucket names using a checksum of the artifact `__ - `check for dataset CSV existence before wget in census-end-to-end.ipynb `__ - `expand and unify gitignores `__ v0.11.7 (2019-06-10) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `The constructors for Project, Experiment, ExperimentRun, and ExperimentRuns—as well as with their _get() and _create() functions—now take an additional retry parameter, though these functions are all not intended for public use to begin with. `__ New Features ^^^^^^^^^^^^ - `enable logging lists, and dictionaries with string keys, as attributes `__ - `implement a max_retries parameter and attribute on Client to retry requests with exponential backoff on 403s, 503s, and 504s `__ Internal Changes ^^^^^^^^^^^^^^^^ - `delegate most REST calls to an internal utility function `__ - `implement back end load test `__ - `change Read the Docs sidebar from fixed to static `__ - `fix a bug that matplotlib has with macOS which was restricting testing `__ v0.11.6 (2019-06-07) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `Providing a cloudpickle version in the requirements for deployment that doesn't match the version used by the Client now raises an error instead of overwriting the line in the requirements. `__ New Features ^^^^^^^^^^^^ - `add ExperimentRun's Verta WebApp URL to its __repr__() `__ Bug Fixes ^^^^^^^^^ - `use cloudpickle.__version__ instead of relying on pip `__ Internal Changes ^^^^^^^^^^^^^^^^ - `remove internal utility get_env_dependencies() `__ - `update notebooks `__ v0.11.5 (2019-06-04) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `The dataset_csv parameter for log_model_for_deployment() has been replaced with two parameters for feature and target DataFrames. `__ Bug Fixes ^^^^^^^^^ - `properly render lists in docstrings `__ Internal Changes ^^^^^^^^^^^^^^^^ - `have the upload script clean out build directories after uploading `__ v0.11.4 (2019-05-31) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `The dataset_df parameter for log_model_for_deployment() has been renamed to dataset_csv. `__ Bug Fixes ^^^^^^^^^ - `reset the correct streams in log_model_for_deployment() instead of model_api over and over again `__ v0.11.3 (2019-05-31) -------------------- New Features ^^^^^^^^^^^^ - `implement __version__ attribute on package `__ Bug Fixes ^^^^^^^^^ - `remove unsupported dependency on pandas and NumPy in utils module `__ Internal Changes ^^^^^^^^^^^^^^^^ - `move package version string from verta/setup.py to verta/verta/__about__.py `__ - `remove old model API tests that have been superseded by property-based tests `__ - `add pandas as a testing dependency `__ v0.11.2 (2019-05-30) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `Parameters for client.set_* functions have been renamed to name and id, from e.g. proj_name and _proj_id. `__ - `The _id attribute of Project, Experiment, and ExperimentRun have been renamed to id. `__ - `The default generated names for Project, Experiment, and ExperimentRun have been shortened. `__ Bug Fixes ^^^^^^^^^ - `fix typos in client.set_* error messages `__ v0.11.1 (2019-05-29) -------------------- Bug Fixes ^^^^^^^^^ - `fix internal utility get_env_dependencies() for compatibility with Python 3.6 and earlier `__ v0.11.0 (2019-05-29) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `log_model_for_deployment() now no longer requires a dataset argument, but requires a model API argument. The order of parameters has changed, and dataset_csv has been renamed to dataset_df. `__ New Features ^^^^^^^^^^^^ - `implement ModelAPI utility class for generating model APIs `__ Internal Changes ^^^^^^^^^^^^^^^^ - `create an example notebook that downloads our beloved Census data with wget `__ - `rename the "scikit" model type to "sklearn" `__ - `delete old internal model API generation utility `__ - `update demo utility predict function to simply dump the JSON input into the request body `__ - `implement internal utility to check for exact version pins in a requirements.txt `__ - `implement internal utility to obtain the local environment's Python version number `__ - `update READMEs `__ - `add utils module to API reference `__ - `implement tests for model API generation `__ - `implement property-based tests for model API generation `__ - `add deepdiff to testing requirements `__ - `add hypothesis to testing requirements `__ v0.10.2 (2019-05-22) -------------------- no functional changes v0.10.1 (2019-05-22) -------------------- Bug Fixes ^^^^^^^^^ - `properly expose intermediate subpackages for compatibility with Python 3.2 and earlier `__ v0.10.0 (2019-05-16) -------------------- Backwards Incompatibilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - `log_hyperparameters() now must take a single, whole dictionary as an argument and no longer accepts dictionary unpacking. `__ - `Getting observations from an ExperimentRun now returns tuples pairing observations with their timestamps. `__ - `Passing a string into artifact logging functions now attempts to open a file located at the path represented by that string, rather than simply logging the string itself. `__ - `Attempting to log an unsupported datatype now throws a TypeError instead of a ValueError. `__ - `Logging artifacts now uses cloudpickle by default, instead of pickle. `__ - `The internal logic for getting a Project by name has changed, and will be incompatible with old versions of the Verta Back End. `__ - `The internal logic for handling uploading custom models for deployment has changed, and will be incompatible with old versions of the Verta Back End. `__ - `The internal logic for getting an ExperimentRun by name has changed, and may be incompatible with old versions of the Verta Back End. `__ New Features ^^^^^^^^^^^^ - `associate user-specified or automatically-generated timestamps with observations `__ - `implement methods on ExperimentRun for logging and getting tags `__ - `implement methods on ExperimentRun for logging multiple attributes, metrics, or hyperparameters in a single transaction `__ - `enable uploading custom model APIs for deployment `__ - `create functions specifically for logging artifact paths without attempting uploads `__ Bug Fixes ^^^^^^^^^ - `reset stream pointer on failed deserialization attempts `__ Internal Changes ^^^^^^^^^^^^^^^^ - `convert pandas DataFrames into CSVs when logging for deployment for data monitoring `__ - `implement a secondary predict function in demo utilities that returns the raw HTML response instead of a formatted response `__ - `move our example notebooks from workflows/demos/ to workflows/examples/ `__ - `change "unknown" model type to "custom" in model API `__ - `add "keras" deserialization in model API `__ - `add cloudpickle to requirements with the locally pinned version if it was used when logging for deployment `__ - `implement handful of small fixes to maintain Python 2.7 compatibility `__