Skip to main content

*Allotrope® is a registered trademark of the Allotrope Foundation; no affiliation with the Allotrope Foundation is claimed or implied.

Test Introduction

Welcome to allotropy -- a Python library by Benchling for converting instrument data into the Allotrope Simple Model (ASM).

View the list of instrument software currently supported in SUPPORTED_INSTRUMENT_SOFTWARE.

The objective of this library is to read text or Excel based instrument software output and return a JSON representation that conforms to the published ASM schema. Note that some schemas do not yet match the published ASM schema, in these cases the CHANGE_NOTES.md file included alongside the schema details the differences and proposed changes to ASM or the library schema. The code in this library does not convert from proprietary/binary output formats and so has no need to interact with any of the specific vendor softwares.

If you aren't familiar with Allotrope, we suggest you start by reading the Allotrope Product Overview.

We have chosen to have this library output ASM since JSON is easy to read and consume in most modern systems and can be checked by humans without any special tools needed. All of the published open source ASMs can be found in the ASM Gitlab repository.

This code is published under the permissive MIT license because we believe that standardized instrument data is a benefit for everyone in science.

Contributing

We welcome community contributions to this library and we hope that together we can expand the coverage of ASM-ready data for everyone. If you are interested, please read our contribution guidelines.

Usage

Convert a file to an ASM dictionary:

from allotropy.parser_factory import Vendor
from allotropy.to_allotrope import allotrope_from_file

asm_dict = allotrope_from_file("filepath.txt", Vendor.MOLDEV_SOFTMAX_PRO)

or, convert any IO:

from allotropy.parser_factory import Vendor
from allotropy.to_allotrope import allotrope_from_io

with open("filename.txt") as f:
    asm_dict = allotrope_from_io(f, Vendor.MOLDEV_SOFTMAX_PRO)

bytes_io = BytesIO(file_stream)
asm_dict = allotrope_from_io(bytes_io, Vendor.MOLDEV_SOFTMAX_PRO)

Specific setup and build instructions

.gitignore: used standard GitHub Python template and added their recommended JetBrains lines

Setup

Install Hatch: https://hatch.pypa.io/latest/ Install Python: https://www.python.org/downloads/ This library supports Python 3.10 or higher. Hatch will install a matching version of Python (defined in pyproject.toml) when it sets up your environment.

Tell git to use .githooks:

git config core.hooksPath .githooks

Dependencies

To add requirements used by the library, update dependencies in pyproject.toml:

  • For project dependencies, update dependencies under [project].
  • For script dependencies, update dependencies under [tool.hatch.envs.default].
  • For lint dependencies, update dependencies under [tool.hatch.envs.lint].
  • For test dependencies, update dependencies under [tool.hatch.envs.test].

Useful Hatch commands

List all environments:

hatch env show

Run all lint:

hatch run lint:all

Auto-fix all possible lint issues:

hatch run fix

Run all tests in the default python enviroment (currently: 3.11.9)

hatch run test

Run all tests against all supported python versions (currently 3.10-3.12) Note: this is checked against in CI - your change must pass this to merge.

hatch run test_all:test

Run against a specific python version (useful for debugging if a test is failing in one environment)

hatch run test_all.py3.12:test

Run a specific test file (replace the filepath with your own):

hatch run test tests/allotrope/allotrope_test.py

Run all tests with coverage:

hatch run test:cov

Spawn a shell within an environment for development:

hatch shell

Publish

NOTE: only package admins can publish allotropy.

To publish a new version:

hatch run scripts:update-version

Merge the resulting PR, and then run on main:

hatch build
hatch publish

Release files for allotropy 0.1.143.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for allotropy 0.1.143.post1
File Size Uploaded
allotropy-0.1.143.post1.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for allotropy 0.1.143.post1
File Interpreter ABI Platform
allotropy-0.1.143.post1-py3-none-any.whl Python 3 none any Details

Total release size: 3.4 MB

Release files / allotropy-0.1.143.post1.tar.gz

Download URL allotropy-0.1.143.post1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
3a2f44c17a75adc19cfca602cd06afd5ffd046538855ea6f801f305f5a6fd730
BLAKE2b-256 checksum
How to use checksums
dac5bf2d985ca0161e88d4b152374edbc6a59e70e8484decacb72704538f723e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.14.4 HTTPX/0.28.1

Release files / allotropy-0.1.143.post1-py3-none-any.whl

Download URL allotropy-0.1.143.post1-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
c2c6f6d0d4115faa9e87296488aee547614720a1cf7eb7d789e808a31310d589
BLAKE2b-256 checksum
How to use checksums
e8c518170b8358a07b80545db380d9a79e6e9be3c2cfddee514d2d359b759600
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.16.5 cpython/3.14.4 HTTPX/0.28.1

Release history Release notifications | RSS feed

This release

0.1.143.post1 This release

2 release files

0.1.99

2 release files

0.1.97

2 release files

0.1.96

2 release files

0.1.95

2 release files

0.1.94

2 release files

0.1.93

2 release files

0.1.91

2 release files

0.1.90

2 release files

0.1.89

2 release files

0.1.88

2 release files

0.1.86

2 release files

0.1.85

2 release files

0.1.84

2 release files

0.1.83

2 release files

0.1.80

2 release files

0.1.79

2 release files

0.1.76

2 release files

0.1.75

2 release files

0.1.74

2 release files

0.1.73

2 release files

0.1.72

2 release files

0.1.71

2 release files

0.1.70

2 release files

0.1.69

2 release files

0.1.68

2 release files

0.1.67

2 release files

0.1.65

2 release files

0.1.64

2 release files

0.1.62

2 release files

0.1.61

2 release files

0.1.60

2 release files

0.1.59

2 release files

0.1.56

2 release files

0.1.55

2 release files

0.1.54

2 release files

0.1.53

2 release files

0.1.52

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

0.1.46

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.39

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.36

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.23

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page