- Allow empty body in put post patch requests with rsa requests
- Always rebuild authorization headers even on redirects
- Pin CI environment to Ubuntu 20.04 to support running Py 36 tests
- Transcriptic CLI to use "strateos" not "transcriptic" as default API root
- Preferring Bearer token over user token when configuring Connection session.
- Using json-api runs endpoint to fetch project runs instead of previous project-runs endpoint. Change was made to avoid possible timeouts, and improve efficiency. Fields returned from the original project-runs api call were limited to the fields used by the cli. This may be a BREAKING CHANGE if using config.runs method.
- requests dependency to requests>2.21.0,<3
- upload-release command to release archive requires the user_id of the session.
- Linting, equivalence, and docstring issues.
- Updated pillow version <=8,<9
- Pandas version to >=1, <2 to support Python 3.9
- Python 3.9 support
- Jinja2 version >=3.0 to be compatible with the data-processor-service.
- upgraded base docker image to 3.7 to fix nbgitpuller error
- Stdout the detail error_info of the generation_errors in the launch request.
- optional predecessor_id argument in commands.launch. and config.submit_launch_request If passed, will populate on web.
- New -e/--exclude and -i/--include flags to exec. It filters out the autoprotocol instructions in the backend.
- Adapt the backend url resolution with the new configuration of the frontend client.
- A new -tc-suggestion/--time-constraints-are-suggestion flag to exec.
- A new --no-redirect flag to exec. It allows the endpoint of the scle test workcell instance to be used, instead of the client dashboard.
- The workcell id in exec was forced to be wcN. There is now no restrictions.
- Added support for sessions and absolute time constraint in exec CLI command. Added "--sessionId", "--schedule-at", and "--schedule-delay" flags.
- The api url expected by the exec method has been changed to be the url of the new dashboard (unless --no-redirect is used). It has the shape: base_url/facility/workcell. It does not require http to be added anymore.
- A new generated_containers attribute to the Instruction object
- A new exec command to send autoprotocol to a test workcell
- isort for automatic import sorting
- Example initial tests for commands file using responses pattern, starting with submit and projects.
- Deprecation warning for existing -i option for projects command.
- Binder build cache step
- All API requests will now pass the organization context as a request header
- Issue with CodeCov for GitHub action CI
- -i option for projects command did not output anything to console when called from cli.
- Pinned numpy to <=1.19.5 due to an incompatibility issue with numpy 1.20.0 on python 3.7
- Added new option "--names" to projects CLI command. This is meant as a better named and more intuitive replacement for the existing -i option.
- Returned more explicit error statuses for projects and submit commands.
- Remove notebooks directory as we break it out into a separate repository
- Plumbed test posargs through to allow local execution of specific test files.
- Autoprotocol dependency to >=7.6.1,<8 for Instruction informatics attribute
- example notebook for Analysis package exploration
- sample Absorbance and Kinetics datasets
- transcriptic.sampledata module for enabling mocked Jupyter object exploration without establishing an explicit connection
- example notebook for Jupyter object exploration
- Downloads badge to keep track of usage
- Migrated from travis to github actions as a CI backend
- Remove unused scipy dependency
- Break out Jupyter objects into individual files. This affects direct imports from transcriptic.jupyter.objects
- Issue with bash syntax for Travis config
- Codecov configuration for coverage
- Binder badge and updated Dockerfile
- Repeated deploy issue with Travis config
- Encoding error when using dataset upload API with request signing enabled
- Bad request error when making calls to non-Strateos endpoints (e.g. S3) with authorization headers set
- Support bearer token authentication
- Pin black version to 20.8b1 for local dev env consistency
- Remove util.robotize/humanize and change callers to use autoprotocol directly
- .readthedocs.yml configuration for docs building, corresponding badge
- pre-commit framework and linting
- auto-deploy functionality
- Fish completions
- Autoprotocol dependency for
analysis
package
- Transitioned all .md files to .rst files
- Doc dependencies, Sphinx to 2.4, releases to 1.6.3, sphinx-rtd-theme to 0.4.3
- Test dependencies, pytest to 5.4, pylint to 2.5.2, tox to 3.15
- Travis build reorganized to distinct jobs
- Support for Python 3.8
- Made adding autocomplete functionality more explicit
- Base CLI test framework
- Standardize on kebab-case for cli commands
- Plotly dependency to 1.13
- Matplotlib dependency to 3.0.3
- Spectrophotometry plots now render offline
- Dataset object html representation increased
- Kinetics.Spectrophotometry.plot() function now works again
- Spectrophotometry.Absorbance/Fluorescence/Luminescence plot() works again
- References to Phabricator
- Support for Python 3.5
- Add optional Run title to Launch command
- Removal of
can_submit_autoprotocol
feature group in the default.transcriptic
- zsh auto-completion support
- Support only Python >=3.5, drop Python 2 support
- Pin dependencies
- Email references to point towards strateos
- Added
Connection.from_default_config()
method and tests - Added
Connection.modify_aliquot_properties()
for aliquot property managment
- Lint and docs, test cleanup
- Starter work on testing
Connection
methods. - Updated dependencies to only support python 2.7 and python >=3.5
- run tox tests against python 3.5 instead of 3.4
- lint and build docs with tox
- DataObject class which should help ease the transition from Datasets to DataObjects with regards to fetching data.
- doc and lint errors
- Docstring building
attachments
attribute onDataset
- Analyzed Dataset content-disposition
- Separated out the CLI logic into programatically callable functions.
- Ability to filter by package id when using transcriptic launch
- Made
transcriptic analyze
command visible to all
- Analyze handles missing pricing information.
- Jinja2 dependency made less strict
- Fixed dataset and release uploading.
- Fixed encoding bug with Python 3
- Fixed backwards compatibility bug with using
makedirs
with Python 2
- Added
transcriptic generate_protocol <NAME>
that generates a scaffold of a python protocol.
transcriptic summarize
now has an optional--html
argument. When specified it will return a url to view the autoprotocol.
transcriptic select_org
now has an optionalorganization
argument. When specified, i.e.transcriptic select_org my_org
, it’ll skip the prompt and set the organization value tomy_org
directly.
transcriptic login
now properly respects the--api-root
option and persists the result into the dotfile
transcriptic launch --save_input
now outputs the same type of JSON ### Addedtest
flag totranscriptic launch
, enabling the submission of test runs via the launch command
warp_events
, a new property of theInstruction
object is added. This provides information on discrete monitoring events ### Updated- Instruction object now has an
Id
field ### Fixed - Fixed issue with broken direct imports of Jupyter objects
(e.g.
from transcriptic import Run
)
- Shifted non-core cli dependencies (i.e. those used in analysis) to
the
extras_require
field - Shifted relative imports in base
__init__
file to make this possible - Shifted
objects
to a separate Jupyter module, but preserved existing relative imports path for backwards compatibility - Documentation updated to reflect the changes
- Error with
transcriptic launch --local
when a file is provided
- FileNotFound incompatibility error for Python2 (when ~/.transcriptic file isn’t specified)
- Made cookie updates actually update headers
- in
Connection.upload_dataset()
, only convert io.StringIO instance to bytes, not StringIO.StringIO instance - Issue with
upload-release
- Added concept of HiddenOption and email and token as input parameters ### Updated
- Use
Sessions
object for maintaining persistent api connection - Reworked env_args and headers setting and getting to be clearer and more consistent
- CLI now automatically fits flags in the order of: –flag, environment variable, .transcriptic
- More formal support for cookie-based authentication ### Fixed
- Improvements to the way non-unique projects are handled
- Improved error handling for Py2 ### Removed
use_environ
flag is now deprecated inConnection
. Please specify environment parameters directlyorganization
is now deprecated fromConnection
. Please useorganization_id
instead
- Reworked the structure of
run.data
to be more verbose
transcriptic upload_dataset
to CLI
upload_dataset
to api object and surrounding infrastructure ### Updated- Dataset object is now initialized via a more stable route ### Fixed
- Reworked
run.data
route based on changes to web response
- Quick bugfix to
run.data
route due to breaking web change
- Minor bug with default behavior with
select_org
prompt inselect_org
andlogin
transcriptic payments
to view payment methods and their corresponding ids--payment
flag tolaunch
andsubmit
to allow specification of payment methods ### Updatedtranscriptic launch
now presents and the price and asks for a confirmation before proceeding.--accept_quote
flag is added which will override the confirmation
- Remote behavior of
transcriptic protocols
- Missing
container
key in Dataset initialization now returns a warning instead of an error
- Conditional display of views based on enabled feature_flags ### Updated
- Default behavior of
protocols
andlaunch
to remote instead
- New –json flag for runs, projects and protocols for fetching JSON ### Fixed
- Fixed bug in PlateRead that caused data overwrites if multiple instances of the same group_label were present
- Handling of 403 routes
- Documentation to reflect permissions changes
- Minor rework of launch_request
- Bug with launch_request
- AP2EN_test failures still requiring protocol
- object.py requirement for
autoprotocol.container_types
- Minor bugfix for
_parse_protocol
- Removed setup.py requirement for
autoprotocol-python
- Bugfix to resolve error caused by attempting to print unicode characters on the CLI.
- Bugfix to remove
data_keys
from Absorbance function, which is no longer returned from webapp
- Add raw_data property to the
Dataset
object - Add ability to cross reference aliquots with their data using the
Dataset
object
- Ability to add
--dye_test
flag totranscriptic preview
to convert a run into a water/dye test
- Fixed minor bug in launching local protocols with
transcriptic launch
- Ability to browse your inventory using the
transcriptic inventory
command E.g.transcriptic inventory water
- Ability to launch protocols remotely using the
--remote
flag. E.g.transcriptic launch Pipetting --remote
- Ability to view available remote protocols for launching using
transcriptic protocols --remote
- Ability for
transcriptic summarize
to retrieve resource strings with the--lookup
flag
- resources route has been updated to match web return
- Ap2En for dispense and provision
- resources route now accepts resource IDs
- Object helpers to allow more natural property access. E.g.
myRun.instructions.Instructions
=myRun.Instructions
- Misc formatting changes for HTML representation
- Underyling
handle_response
code to be more robust
- Row index of the Container.aliquots DataFrame object now corresponds to the well index
- Stored volume in the Container.aliquots DataFrame as a Unit object instead of unicode
- timeout property for Run objects
- data_ids property for Run objects
- data property for Run objects gives more informative errors when failing due to timeout
.monitoring
method is now shifted to the Instruction object from the Run object- Optional parameters can now be handled by
get_route
### Fixed - Existing route for monitoring data
- Made local commands robust to lack of internet access
- Broaden exception clause for general Python compatibility
- Usage analytics support to CLI ### Updated
- Minor documentation fixes
transcriptic select_org
in CLI now allows you to switch organizations without re-authenticatingUser-agent
information to headersRun.containers
to return a list of containers used within the run
- Updated
transcriptic runs
route to reflect reality
- Ability for
api.get_zip
to handle larger zip-files by downloading to a local file cover
andstorage
attributes to Container object- Ability to construct and visualize a given protocol’s job tree using a flag on the CLI ### Updated
- Updated english’s summarize to handle all currently-implemented instructions
- Fixed initialization of Container object
- Helper function
flatmap
into util ### Fixed - Fixed resources route in CLI.
transcriptic resources 'query'
now works
- Simplified
Container._parse_container_type
to use matching AP-Py container-type object whenever possible
- additional documentation for
Connection
object ### Updated - update relevant documentation.rst files
- Updated “url” reference in run attributes to use “id” instead, in-line with a web update ### Fixed
- Update docs/requirements.txt to be PEP440 compatible
- Reworked
Instruction
object - Reworked
Run.instructions
to return a Dataframe ofInstruction
objects Aliquot
object has been reworked into Container object as analiquots
property
Resource
object has been removed from the library as its currently unused
- Change check for ImagePlate to be more generic
- Setup now requires plotly 1.9.6 (for plotly offline/ipython compatibility reasons)
- Tab completion for CLI (enabled by sourcing
transcriptic_complete.sh
) - New API route for getting zipfiles:
api.get_zip
- Made -h option synonymous with –help
- Setup now requires plotly 1.9.6 or greater
- Better handling of Datasets with no
well_map
property in kinetics.spectrophotometry
- New documentation for the new testing framework and how to write tests
- Added Dockerfile for running Transcriptic containers. Compatible with CI tools (e.g. Jenkins) as well
- New documentation added and hosted on http://transcriptic.readthedocs.io/en/latest/
- Migrated the test framework from vanilla unittest2 to py.test
- Rewrote documentation structure and added misc. documentation related changes
api
module has been removed and merged intoconfig
module. The Connection object now handles all api calls.- All references to
ctx
has been renamed toapi
- Fixed bug in spectrophotometry handling attributes
- Fixed compatibility issue with running
transcriptic preview
on python3
- Transcriptic CLI subcommands: compile, init, preview, summarize no longer require login
transcriptic runs
command now works in CLI
__version__
variable for checking version. Enable version checking in CLI usingtranscriptic --version
- New Analysis module: Kinetics;
Kinetics
base object andKinetics.Spectrophotometry
for analyzing kinetics-based data such as growth curves - Expose additional properties of Dataset object:
operation
,container
,data_type
- Objects module has been heavily reworked and documentation added. This is especially true for Project, Run and Dataset objects
- Fixed package related CLI issues
api
module for handling all calls including responses and exceptionsConnection
object now mirrors most of the CLI functionality- basic test infrastructure and examples for testing API module
- all separate requests, context or connection object calls are now consolidated and re-routed to go through the api and routes module
- all direct api calls (get, put, push, pull) are removed from
Connection. Users are encouraged to use the corresponding calls from
the
api
module instead
- Change in datasets route
- Removed additional shadowed variable names
imaging
module withImagePlate
as the first class for representing plate images. Focus is placed on IPython rendering- PIL dependency for image manipulation
- Major refactor of code to be in-line with PEP8
- Removed unnecessary modules and renamed shadowed variables
- Updated behavior of
transcriptic login
to be clearer and to return appropriate error messages
- print statement for launch
- pypi tags for setup.py such as
classifiers
andlicense
- Updated Container object to automatically populate safe_min_volume_ul
- Unused dependency: scikit-learn
- Updated manifest json parsing to deserialize into an OrderedDict, preserving key order, which enables quick launch inputs to be ordered
launch
command now supports –save_input option to save the protocol input as a local file
launch
command now properly supported either a project name or project id for theproject
option- typo AutoProtocol -> Autoprotocol
launch
command to configure and run protocols without needing to package and upload them first
- RMSE calculation in spectrophotometry.py now reports correct RMSE
- transcriptic submit now correctly parses new autopick group
- containter attributes are correctly requested from transcriptic via spectrophotometry.py
- List runs in a specific project using the
transcriptic runs <project_name_or_id
command
- Enabled
analyze
andsubmit
to work for Protocol objects - Additional functionality to Container object: Use your favorite autoprotocol ContainerType functions
- Additional properties of Container object exposed: Use wellMap to return a mapping of the well indices to aliquot names
- Set plot to default to use mpl=true (not all users have plotly credentials)
- cost breakdown in
analyze
- Python 3 compatibility
- use
transcriptic preview --view
to return a URL that displays the instruction cards produced by the run you want to preview (this URL expires after two hours) - use the ‘transcriptic resources ’ CLI command to search the catalog
for a resource’s vendor and
id
plotly
andfuture
are now required
- dataset helpers and embedding
- ipython module
- Refactored analysis.spectrophotometry into
Fluorescence
,Absorbance
andLuminescence
classes that inherit fromPlateRead
- More documentation and related configuration
- Python 3 support
- Added cost breakdown to analyze CLI
- bug with initializing runs with Project object
- project url and description to setup.py
Aliquot
,Resource
andContainer
object types- documentation setup and configuration
- moved
submit
fromcli
to__init__
- critical bug in
submit
- bug in
analyze
- bug in
create_project
- migrated content from transcriptic/runner to here, converted that code to a Python Client Library,
- CLI functionality has not changed other than renaming some commands:
release
–>build-release
upload
–>upload-release
new-project
–>create-project
new-package
–>create-package
run
–>compile