All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Documentation at https://developer.pennsieve.io/python/
- Deprecation warning for all classes due to transitioning to the new Pennsieve agent (version 7.0.0).
- All the classes of the current library will be deprecated on 2022-11-01.
- Pennsieve class functions and API of the agent will be significantly changed.
- Pennsieve no longer supports Python 2.7 and Python 3.5 (they reached end of life).
- Fixing the rsa 4.0.0 dependency error.
- Removing documentation and rsa build errors.
- Authentication with Cognito when a user does not have AWS credentials configured
- Fixed connection to the Agent websocket on Windows
- Updated minimum Agent CLI version to fix panic
- Profile setup script. Use the
pennsieve-profile
command to set up your Pennsieve API keys
- Client now authenticates to the platform using Cognito
- The Agent integration is currently broken and will be hot-fixed
- Change from Blackfynn to Pennsieve
- Fixed build issue with Docker CI container on Travis
- Fixed Agent tests in the Docker CI container
- The Pennsieve agent is now required for uploading files. The deprecated legacy uploading mode has now been removed and the
use_agent=
argument will be ignored.
- Tests for models and timeseries layers
- Removed tabular support
- Optional global headers to attach to every request
- Deprecate
default
field on model properties. Therequired
property should be used instead.
ownerId
property for packages- Model creation now raises an exception when property creation fails and does not leave the model in an indeterminate state with no properties
black
andisort
code formatters to the project- An endpoint to batch create linked properties
- The client will now retry all HTTP 500 errors except for
POST
requests. Previously the client only retried 502, 503 and 504 errors.
- Updated
get_package_by_filename
to returnPackage
objects that can make requests to the platform
- Function
get_package_by_filename
for Dataset, returns any packages containing a file matching afilename
for the current dataset
- Removed Numpy and Pandas dependencies from the main package installer. These dependencies are only used by the timeseries code, and can now be installed with
pip install pennsieve[data]
. - Made the
websocket-client
dependency only required if using the CLI Agent for uploads
- Support for Python 3.8
- Support for Python 3.4
- Support for
Dataset.tags
- Regression bug on a concept test
- Function
status_log
for Dataset, returns the status change log of the dataset
- Added an optional
model_service_host
argument to thePennsieve
client
- Fixed another bug in the deserialization of boolean properties
- Fixed a bug in the deserialization of boolean properties
- Function
published()
for Dataset, returns info about publication on the Discover platform - Function
package_count()
for Dataset, returns the total number of Packages - Function
team_collaborators()
for Dataset, returns the list of teams that can access the dataset - Function
user_collaborators()
for Dataset, returns the list of users that can access the dataset - Function
owner()
for Dataset, returns the owner of the dataset
- Correctly compute the path for long filepaths on windows
- Fixed upload in windows for very long filepaths
- Uploading on Windows and Cygwin with the Agent
- Relaxed requirement on protobuf
- Uploading now uses the Pennsieve CLI Agent by default. Visit https://developer.pennsieve.io/agent/ for installation instructions. You can pass
use_agent=True
to continue to use the legacy uploader. - Most of the functionality in the
bf
command line script has been removed. The script has been renamedbf_profile
and only manages Pennsieve profiles. The Pennsieve CLI Agent is now the recommended command line interface to the platform. - Removed the deprecated
set_type
andset_value
methods - Removed the
streaming_api_host
argument from thePennsieve
client - Removed the deprecated
get_collaborators
,add_collaborators
, andremove_collaborators
methods
- Equality checks for Pennsieve objects
- A bug in
Model.create_records
when adding array-valued properties
- Adding and retrieving array model values
- The body of HTTP errors is now shown to users in raised exceptions
- Support for linked properties
- Deprecated the
set_type
method on model properties. You can set property types usingModelProperty.type
directly. - Deprecated the
set_value
method on model values. You can now set property values usingModelValue.value
directly.
- Incorrect version
- Documentation about release
- State of packages can no longer be set through this library
- Separate host for Models API
- Using relate_to on concepts now populates the source and destination of the relationship
- Knowledge graph query results now include the records of models specified
in a
join()
.
- Added query support to knowledge graph models.
- Backwards-incompatible errors caused by old versions of the Agent. You now must explicitly pass
use_agent=True
to enable uploads via the Pennsieve CLI Agent.
- Bugs in progress bars when using the Agent for uploads
- The
bf
Python CLI is deprecated and will be removed in a future release. Please install and use the new Pennsieve CLI Agent https://developer.pennsieve.io/agent.
- The Python client can now use the Pennsieve CLI Agent for large file uploads
- Newly created Pennsieve datasets no longer process all uploaded data. Pass
automatically_process_packages=True
tocreate_dataset
to revert to the old behavior. - Added
Dataset.get_connected_models
andModel.get_connected
methods to retrieve topologically connected models.
- Added
Dataset.status
for viewing the current status of a dataset - Added
Dataset.get_graph_summary
method for retrieving high-level statistics about the graph
- Deprecated the following
Dataset
methods:collaborators
,add_collaborators
, andremove_collaborators
. Permissions should now be managed through the Pennsieve web app.
- Removed limit on the number of related records that can be retrieved
- Make ModelTemplate category param optional in constructor
- Added knowledge graph tutorial in documentation
- Retrieval of all annotations for a timeseries
- Added support for Python 3.7
- Refactored checks that channels belong to a given timeseries
- Loading of non-enumerated array properties
- Automatic releases via Travis (again)
- Automatic releases via Travis
- Settings overridden via function arguments will be prioritized over settings overridden by environment variables
- Documentation updates
- Added descriptions to properties
- Divide-by-zero error during empty file upload
- Support for Python 3!
- The
upload()
methods ofDataset
andCollection
objects and theappend_files()
method ofTimeSeries
can now be passed a list of files or separate file arguments. - Updated documentation and documentation URLs.
- Unpinned version of the
pytz
dependency.
- Fixed overrides of concept and streaming API hosts.
TimeSeries
streaming upload API.- Deprecated
set
andappend
methods.
- Support for topology endpoints
- Client now raises an exception when creating a dataset with an existing name
- Removed concurrent requests capabilities
- Improved timeout and retry handling
owner_id
property on datasets and packages- Deadlock caused by importing the client from another module
- Ledger API
- Support for model templates
- Cleaned up Travis config
- Updated to use new date format
- Added a new release target which will build images on each new release that can be used to run unit tests.
- Updated concepts instance delete function to handle new response
- Updated documentation
- Resolved issue related to timed out APIs calls during file upload
- Channels can be deleted by
id
- A
gap_factor
argument has been added tosegments
andget_segments
timeseries functions - Pull request templates
- Standardized logging methodology (no more print statements)
- Creating a model with invalid properties will no longer fail - the model will be created without any properties and an error will be logged
- Fixed
delete_annotation_layer
anddelete_annotation
- Updated
query_annotation_counts
in accordance with updates to the concepts service RecordSet
.as_dataframe
now accepts arecord_id_column_name
arg to optionally include the record_id in the dataframe
- Preliminary graph features, beta-quality
- Basic timeseries segments functionality
- Documentation dump (needs revision)
- Upload using preview/grouping endpoint
- A field for
size
to the File model
- Models after updates to package, dataset, user, and organization API endpoints
- Updated
_update_self
to more reliably rely on model IDs for self verification
- Fixed re-authentication by maintaining organization context
bf.members
function to return the members of the current organization- Separation of CLI only and client code
- Better working_dataset handling
- Timeseries query format has changed for the rest endpoint. Previously returned two arrays - times and values. Now returns a single array of time,value pairs.
- Only create cache directory if using cache
bf.context.members
property to get list of current org's users
- Use psutil for cross-platform os process support
- Model after new package and datasets API endpoints
- Environment variable support for
s3_host
ands3_port
(used mostly internally)
- Collection/Dataset
print_tree()
function to work with utf-8 encoded names - Debug print on threaded upload errors.
- Local caching
- Profile handling
- API Tokening for login instead of username/password
- Command line interface restructuring
- Printing path of datasets for CLI
- Appending annotation files in client (bf append, ts.append_annotation_file)
- Support upload of .bfannot alongside timeseries files
- Write annotations from timeseries package to .bfannot file (ts.write_annotations)
- Fixes for operating on 32bit machines due to overflow from UTC timestamps
- Bug fix for adding channel specific annotations
- Documentation additions
- Misc Bug Fixes
- Optimization of uploads
- Enabled recursive upload of folders
- Enabled upload/append of annotations (.bfannot) to timeseries packages
- Ledgers
- Reworked Annotations
- add, insert layers and annotations functions updated
- Reduced thread count for parallel uploads
- Initial commit