Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems.
Project description
ARCtrl
ARCtrl the easy way to read, manipulate and write ARCs in .NET, JavaScript and Python! ❤️
| Version | Downloads |
|---|---|
Install
.NET
#r "nuget: ARCtrl"
<PackageReference Include="ARCtrl" Version="1.1.0" />
JavaScript
npm i @nfdi4plants/arctrl
Python
pip install arctrl
Docs
Documentation can be found here
Development
Requirements
- nodejs and npm
- verify with
node --version(Tested with v18.16.1) - verify with
npm --version(Tested with v9.2.0)
- verify with
- .NET SDK
- verify with
dotnet --version(Tested with 7.0.306)
- verify with
- Python
- verify with
py --version(Tested with 3.12.2, known to work only for >=3.11)
- verify with
Local Setup
Windows
On windows you can use the setup.cmd to run the following steps automatically!
-
Setup dotnet tools
dotnet tool restore -
Install NPM dependencies
npm install -
Setup python environment
py -m venv .venv -
Install uv and dependencies
.\.venv\Scripts\python.exe -m pip install -U pip setuptools.\.venv\Scripts\python.exe -m pip install uv.\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev
Verify correct setup with ./build.cmd runtests ✨
Linux / macOS
On unix you can use the setup.sh to run the following steps automatically!
-
Setup dotnet tools
dotnet tool restore -
Install NPM dependencies
npm install -
Setup python environment
python -m venv .venv -
Install uv and dependencies
.venv/bin/python -m pip install -U pip setuptools.venv/bin/python -m pip install uv.venv/bin/python -m uv pip install -r pyproject.toml --group dev
Verify correct setup with bash build.sh runtests ✨
Branding
Feel free to reference ARCtrl on slides or elsewhere using our logos:
| Square | Horizontal | Vertical |
|---|---|---|
Performance
Measured on 13th Gen Intel(R) Core(TM) i7-13800H
| Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |
|---|---|---|---|---|
| Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code | 0 ± 0 | 0 ± 1 | 91 ± 12 |
| Table_AddDistinctRows | Add 10000 distinct rows to a table with 4 columns. | 13 ± 2 | 14 ± 4 | 119 ± 12 |
| Table_AddIdenticalRows | Add 10000 identical rows to a table with 4 columns. | 6 ± 2 | 6 ± 1 | 104 ± 6 |
| Table_AddColumnsWithDistinctValues | Add 4 columns with 10000 distinct values each. | 8 ± 3 | 10 ± 1 | 53 ± 1 |
| Table_AddColumnsWithIdenticalValues | Add 4 columns with 10000 identical values each. | 5 ± 1 | 4 ± 0 | 47 ± 1 |
| Table_fillMissingCells | For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. | 0 ± 0 | 2 ± 1 | 6 ± 4 |
| Table_ToJson | Serialize a table with 5 columns and 10000 rows to json, with 3 fixed and 2 variable columns. | 227 ± 64 | 68 ± 18 | 7851 ± 1411 |
| Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json, with 3 fixed and 2 variable columns. | 147 ± 15 | 2878 ± 135 | 6303 ± 1798 |
| Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns. | 330 ± 36 | 88 ± 9 | 12644 ± 550 |
| Assay_fromJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns. | 355 ± 66 | 61 ± 6 | 6499 ± 1068 |
| Assay_toISAJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns | 487 ± 36 | 959 ± 36 | 15618 ± 482 |
| Assay_fromISAJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns | 359 ± 29 | 706 ± 46 | 9587 ± 621 |
| Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy | 29 ± 14 | 62 ± 5 | 818 ± 36 |
| Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook | 240 ± 31 | 284 ± 24 | 3657 ± 199 |
| Investigation_FromWorkbook_ManyStudies | Parse a workbook with 1500 studies to an ArcInvestigation | 127 ± 20 | 498 ± 21 | 9469 ± 412 |
| ARC_ToROCrate | Parse an ARC with one assay with 10000 rows and 6 columns to a RO-Crate metadata file. | 1431 ± 99 | 3526 ± 264 | 61224 ± 728 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arctrl-3.0.1.tar.gz.
File metadata
- Download URL: arctrl-3.0.1.tar.gz
- Upload date:
- Size: 657.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
942dcbb3390c7048b1a2f7dc38c033f495d4be48ded805026934fb0c71b96118
|
|
| MD5 |
f39996a8003ccbdf2e1d1f4deca6943c
|
|
| BLAKE2b-256 |
d810545cbd4be6926bf5500be5b29bd5c92c87a350c01563ad6540c0558c2f94
|
File details
Details for the file arctrl-3.0.1-py3-none-any.whl.
File metadata
- Download URL: arctrl-3.0.1-py3-none-any.whl
- Upload date:
- Size: 953.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c4839785448b60de79dfb37272aa11281431ae85682e9f1f027224108a02684
|
|
| MD5 |
05e5ad2474e1fee3360f0c068cf6939a
|
|
| BLAKE2b-256 |
d17df142762f5eb1b8422a23c4f1c70862ad3ee4d5ab2010f261ca43dfa25eb7
|