Latest [1.16.2]
- HOTFIX: bool test robust to NaNs in _download_aws; no datasets modification by _update_cache_from_records
- HOTFIX: force aws download on md5sum mismatch
- squeeze pandas dataframe on csv_read
- load_cache now public method; option to load specific remote cache with tag arg
- fix incorrect error message in one.alf.exceptions.ALFMultipleObjectsFound
- suppress irrelevant pandas future warning
- ignore meta attribute when getting array length for interpolating timestamps in one.alf.io
- no longer check for sizes if hash present
- added yaml support to one.alf.io.load_file_content
- added note of caution in download_dataset docstring
- function to remove cache files and folders that are not in datasets cache table
- bugfix: load interpolate timestamps with timescale
- bugfix: username now passed to parameter setup routine
- in silent mode if token invalid the user is logged out to remove old token from param file
- root_dir now optional input for session_record2path
- do not check for recent cache upon instantiation in remote mode
- one.remote.aws.get_s3_virtual_host constructs HTTPS Web address from bucket name and region
- one.remote.aws.is_folder determines if an S3 Object is a folder
- boto3 now a requirement
- cache 'project' field renamed to 'projects'
- iter_datasets now public function in one.alf.io, moved from one.alf.cache
- expose register_session kwargs in RegistrationClient.create_session method
- one.remote.aws.get_aws_access_keys requires AlyxClient instance instead of OneAlyx, in line with one.remote.globus
- HOTFIX: copy old REST cache only if new location does not exist
- HOTFIX: default S3 repo set for get_s3_from_alyx
- remote package for handling file operations with different protocols
- a Globus class for interfacing with the Globus SDK
- an abstract download manager class
- one.remote.aws module to provide low-level access to s3 download functions, both private and public
- added clarification for generating cache with an Alyx database in documentation
- debug log of exceptions upon HTTP and connection errors during loading of cache
- added htsv file support in alf.io.load_file_content
- REST cache now stored in download cache directory
- JSON tests may now be run concurrently
- fix'd dimension check for DataFrame attributes in ALF objects
- dimension warning logged when dimensions don't match after appending to ALFBunch
- created_time now updated correctly in cache meta
- One._update_cache_from_records method for adding remote Alyx records to the cache
- One.save_cache method to save modified cache
- path2record now returns a session path when called with session path
- record2url now returns a session URL when called with a sessions record
- fix'd download bar
- attempt to re-authenticate upon 403 invalid token response
- set cache modified timestamp whenever cache tables are modified
- cache may be downloaded from a variable location set by the 'location' field returned by cache/info endpoint
- urllib exception now caught in OneAlyx._load_cache
- details dict in remote mode search now contains 'date' field
- fix tests relying on OpenAlyx
- warning instead of error raised when tag_mismatched_dataset REST query returns 403
- list_datasets and ses2records now better handle sessions with no datasets in remote mode
- tests for OneAlyx._download_aws
- HOTFIX: OneAlyx._download_aws now works with new cache index
- method for recording and save the UUIDs of loaded datasets
- fix order of records returned by One.load_datasets when datasets missing
- HOTFIX: OneAlyx._download_datasets deals gracefully with empty datasets frame
- removed try-assert-catch logic from One._download_datasets to improve error stack
- added
from_df
method to one.alf.io.AlfBunch - added
__version__
variable - added check for remote cache minimum API version
- user prompted to verify settings correct in setup
- datasets cache table expected to have index of (eid, id). NB: This changes the order of datasets returned by some functions
- multithreading moved from One._download_datasets to one.webclient.http_download_file_list
- cache_dir kwarg renamed to target_dir in one.webclient.http_download_file
- 'table' attribute now split into columns and merged
- when no username or password provided to constructor, AlyxClient init doesn't call authenticate
- 'stay_logged_in' kwarg removed from AlyxClient constructor; must manually call
authenticate
or remember to calllogout
- user prompted whether to make url default in setup even if default already set
- HOTFIX: failed to return most recent revision; raised MultipleObjectsFound error instead
- expires kwarg in AlyxClient.rest
- fix for AWS download location
- ugly hack to download from aws instead of default http server
- more readable error message; raw JSON printed to debug logger
- rest command loging includes the whole json field on error
- added silent option to instantiate One on local files
- no_cache function for temporarily deactivating the cache in a one-liner
- fix for setup where wrong client key used
- Alyx URL validation during setup and make default now yes by default
- HOTFIX: correct kwarg name in setup documentation; get_default_client includes schema in URL
- minor improvements to documentation and test coverage
- raise ValueError in register_session when lab doesn't match parsed session path
- fix bug where filters don't work in remote list_datasets
- change order of kwargs in list_datasets: filename now the first kwarg
- can now filter by list of filename strings functioning as a logical OR
- dataset kwarg renamed to filename in list_revisions
- fix ALF regular expression pattern: attribute, timescale and extension now parsed correctly
- can now filter datasets by timescale
- clearer error message auth errors raised
- alyx client is_logged_in method now a dependent property
- One and OneAlyx setup methods
- old params files now cleaned up
- removed ALYX_PWD prompt from setup
- improved test coverage
- docs formatting
- One list_* methods return list instead of np arrays
- get_details returns dict with 'date' key in remote mode
- eid2ref works in offline mode
- record2url now expects a pandas.Series object, iterates over DataFrame and returns list
- path2record now returns a pandas.Series instead of DataFrame
- _update_filesystem renamed to _check_filesystem
- _index_type now accepts DataFrame as table input
- better support for string indices in path2url and _download_dataset
- fix for _check_filesystem with datasets dict input
- tests for eid2ref
- load_collection method for loading a Bunch of ALF objects
- propagate down filter datasets filters
- OneAlyx list_* methods return list instead of np arrays
- cache module gracefully deals with empty repos
- cache module refactored to reuse ALF functions
- cache str ids now exclude 'Subjects' part
- session_path_parts now accepts pathlib objects
- one.params.check_cache_conflict now public function
- One.cache_dir now public property
- cache args preserved between calls to paginated response object
- runtime warning when remote list count changes
- alf.io function to return valid session paths within a directory
- HOTFIX: correct exception raise when files missing in load_datasets
- registration module with functions for posting sessions and file records to Alyx
- bumped minimum pandas version in requirements
- REST cache supports URL with port
- describe revision now supported
- ALF spec now requires 'Subjects' folder in order to parse lab, i.e. .../lab/Subjects/subjects/...
- password prompt now specifies user
- clearer REST HTTP response error messages
- extension may be omitted when loading dataset in wildcard mode if dataset doesn't have extra parts
- removed deprecated
_from_
converters - removed walrus from test
- raise warning when fails to set dataset exists to False
- HOTFIX: error no longer raised when logging dimension mismatch in alf.io.load_object
- HOTFIX: ref2dj no longer raises error
- HOTFIX: handles case when file_size is None in _download_dataset
- consistent regex file pattern between functions
- unix shell style wildcards used by default
- limited support for attribute namespace for backward compatibility
- can filter with lists of parts, e.g.
extension=['npy', '?sv']
- alf package refactored for module consistency; removed alf.folders
- function to convert datasets list endpoint to DataFrame
- added logout method; 'authenticate' now prompts for Alyx password if none provided and no token
- fully adopted Numpy docstrings
- revisions now filtered using <= instead of <
- datasets_from_type now type2datasets; returns similar output to list_ methods
- removed ALYX_PWD from setup
- webclient functions sdsc_globus_path_from_dataset, sdsc_path_from_dataset and globus_path_from_dataset moved to ibllib
- HOTFIX: default query_mode now None, fixes missing instance mode
- HOTFIX: correct ses2rec parsing of data URLs (allow_fragments=False)
- HOTFIX: returns correct index when revision returns empty for dataset
- webclient encodes characters in URL query parameters
- docstrings added to ONE factory and classes
- HOTFIX: list_datasets passes eid in superclass call
- list_collections and list_revisions methods
- added example scripts on experiment ids and ALF spec
- search_terms now has query type flag
- removed walruses (support for python 3.7)
- fixed bugs in various converter methods
- fix for silent setup when base url provided
- deals with default_revision all false
- one.search works with remote alyx queries
- configurable test databases
- configurable REST cache mode and default expiry
- test image upload without matplotlib
- clearer One.search docstring
- make_parquet_db date column now datetime.date dtype
- proper support for loading revisions in local mode
- separate function for filtering by collection
- tests for cache table filter functions
- refactored load methods to use the same filter functions
- a load_datasets method for loading multiple datasets at once
- REST headers no longer used in download_file, fixes behaviour for 401 errors
- fix to download_dataset error with alyx record; tests added
- api utils moved to new module
- fix setting default ALYX_URL in setup
- fix for updating missing records in cache
- search cache tables without hitting db by default
- onepqt module to build cache from local filesystem
- silent mode now suppresses print statements
- rest GET requests are now cached for 24 hours
- alf.spec module for constructing, documenting, and validating ALyx Files
- removed load method
- support for multiple configured databases in params
- Alyx web token now cached between sessions
- delayed loading of rest schemes
- ONE factory cache for fast repeat instantiation
- alf.io loaders now deal with MATLAB NPYs and expanding timeseries