Updates to the cloudvolume adapters, and parallelism fixes.
- Convenience API
- Adds support for uint16 image channel creation with the convenience API (#71)
- Parallelism
- Fixes parallelism defaulting to n=1 (#70)
- CloudVolume
- Removes cloudvolume core dependency, and makes it an optional extra-install (#68)
- Fixes and Improvements
- Adds support for the new "queued" downsample channel status (#78)
- Adds support for z-index slicing in the convenience array API (#77)
Pip-installability fix (#67).
Updates to the convenience API.
- Convenience API
- New arguments to specify the source channel for annotation channels
- Specify BossDB config inline without special imports with
array(..., boss_config: dict)
argument - Specify descriptions for newly created resources when calling
array(..., create_new=True)
.
This version introduces the convenience API which uses numpy-like indexing.
This build switches intern
CI to GitHub actions, and now tests both 3.6 as well as 3.7. Python 2.7 testing is no longer supported.
- Convenience API (#48)
- This adds support for the simple
intern.array
interface which mocks the numpy array API for getters and setters.
- This adds support for the simple
- Add support for DVID and cloud-volume hosted data with
DVIDRemote
andCloudVolumeRemote
. (#46) - Add parallelism to
BossRemote#get_cutout
calls by passingparallel=True
orparallel=<int # of jobs>
as an argument. (#52) - Addition of a
MeshService
for local meshing of 3D segmentation data.
v0.10.0 is the last version of
intern
that support Python 2.x. If you need Python 2 support, you must runpip install intern==0.10.0
. The development team does not anticipate further development for Python 2, and support for Python 2 environments will be discontinued. In future versions ofintern
, it will be assumed that the user is on Python 3 (3.6 or above).
- Allow the "~" character in config-file path pointers when creating a new
BossRemote
BossRemote#get_channel
now supports a single string argument of the formbossdb://[collection]/[experiment]/[channel]
. Likewise, you can pass this string directly to, e.g.,BossRemote#get_cutout
as the first argument.- Chunked downloads and uploads enable arbitrarily large cutouts from
BossRemote
.
intern incorporates the access_mode parameter when grabbing cutouts of small AND large sizes. Backwards compatibility with previous versions that make use of the no_cache boolean parameter. Whenever a user makes use of the no_cache param intern will return a deprecation warning. The translation occurs in intern/remote/boss/remote.py and should be removed in future major version upgrades. intern now uses an enum class to limit the possibility of cache modes.
- access_mode = CacheMode.cache - Utilizes the cache and checks for dirty keys
- access_mode = CacheMode.no_cache - Does not check the cache but does check for dirty keys
- access_mode = CacheMode.raw - Does not check the cache and DOES NOT check for dirty keys
This is for functions:
- intern.remote.boss.remote.py:
BossRemote.get_cutout()
- intern.serivce.boss.baseversion.py:
BaseVersion.get_cutout_request()
Convenience functions added:
BossRemote#get_experiment()
BossRemote#get_coordinate_frame()
BossRemote#get_neuroglancer_link()
get a neuroglancer URL from cutout argumentscreate_cutout
will now chunk large cutouts into smaller components to eliminate HTTP size limitation and timeout errors.
- Intern now forwards no_cache option when breaking apart large cutouts.
- Modified the intern
get_cutout()
no_cache
option to default to true instead of false
- BugFix: Removed extra slash after no-cache option on URL that was causing issues.
- Added new no-cache option to the
get_cutout(... no_cache=True)
This option will pull directly from the S3. It should be used when reading large amounts of data at once. Using this option can also increase throughput as the cache can become a bottleneck if a large amount of data is cycled through the cache
- Merged PR #14 from ben_dev - correctly populate downsample_status of ChannelResource.
- Relaxed requests dependency to >= 2.11.1.
- Added BossRemote.get_channel() to ensure users use a fully specified channel with the cutout service.
- Allow experiment time units to be unspecified.
- API v1
- Fix recursion loop when breaking cutout into chunks.
- Fix x-y mistake in chunking.
- Coordinate frame hierarchy methods now
anisotropic
andisotropic
. - Channels now have downsample_status.
Rebranded as intern.
- Made Python 2 compatible.
- Version no longer controlled by resources. Now passed into BossRemote constructor.
- Imports simplified.
- Older Boss API support removed.
- Config dictionary can be used instead of a config file.
- Cutout range args now passed as a list of ints instead of a string.
- Separate list methods for each resource type provided for convenience.
- JHU ndio dependencies removed from requirements.txt.
- Additional legacy code removed
- Can provide config for each service or globally under the [Default] section of the config file
- Can provide config via environment variables
- Changed from a noun_verb convention to a verb_noun convention for function names
- User management now done through entirely through SSO (Keycloak) server.
- Resource, group, and permission API updates reflected in intern
- New
ndio.remote.boss.remote.Remote
methods that support user and access management: group_create()
group_delete()
group_get()
group_add_user()
permissions_add()
permissions_get()
permissions_delete()
user_get_roles()
user_add_role()
user_delete_role()
user_get()
user_get_groups()
user_add()
user_delete()
- Only the name and description of a coordinate frame, can be changed, after creation.
ndio.remote.boss.remote.Remote
method changes:- Exceptions are raised when any non-2xx response received from the Boss.
- Methods that previously returned True to indicate success no longer return a value. Instead, an exception indicates failure (see above).
project_create()
returns anndio.resource.boss.resource.Resource
instead of a dictionary.project_get()
returns anndio.resource.boss.resource.Resource
instead of a dictionary.project_update()
returns anndio.resource.boss.resource.Resource
instead of a bool.ndio.resource.boss.resource.ChannelResource
no longer allows the uint64 data type.
Initial release.