realized

Human-readable string serializations for many data types

https://github.com/dmyersturnbull/realized

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.3%) to scientific vocabulary

Keywords

datetime duration interval json microplate microwell period python quantity serialization string timezone
Last synced: 6 months ago · JSON representation ·

Repository

Human-readable string serializations for many data types

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 6
  • Releases: 0
Topics
datetime duration interval json microplate microwell period python quantity serialization string timezone
Created over 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Citation Codeowners Security

README.md

Realized

Version status License Build (Actions)

Canonical, human-readable string representations for datetimes, durations, intervals, microplates, and more.

Prescribes a unique, unambiguous, human-readable, easily typed, and easily parsed representation for any single entity. It builds on existing standards, restricting as needed to get unique representations.

  • UTC instant: 2022-09-01T00:22:56Z (RFC 3339 subset)
  • instant with offset: 2022-09-01T00:22:56-02:00 (RFC 3339 subset)
  • instant with IANA zone: 2022-09-01T00:22:56-02:00 [America/Los_Angeles] (commonplace)
  • duration: P365DT59M59.5S (ISO 8601 subset)
  • interval: 2022-09-01T00:22:56+00:00--2022-09-01T00:22:56+00:00 (ISO 8601 subset)
  • repeating interval: R5/2022-09-01T00:22:56Z+00:00--2022-09-01T00:22:56+00:00 (ISO 8601 subset)
  • repeating event: R5/P365D (like ISO 8601)
  • repeating period: R5/P30D--P60D (like ISO 8601)
  • microplate well: A01 (commonplace)
  • microplate well set: A01-A12, A01-H01, A01*D3, A01...B6, A01,B02,C03 (custom)
  • image coordinates: (0,0)x(5,5) (where 0,0 is top left)
  • dimensioned value: 9.80665 m/s^2 (Pint subset)

```python from realized import SECOND, InstantUtc, Well8x12, WellSet8x12

dt = InstantUtc[SECOND].fromstr("2022-09-01T00:22:56Z") Well8x12.fromindex(1).asstr # A01 WellSet8x12.fromstr("A01-A03").wells # A01, A02, A03 ```

Durations

Uses a restricted subset of ISO 8601 periods. Forbids years, months, and weeks. Always requires T for time (e.g. PT1H rather than P1H).

```python from realized import Duration

duration = Duration.fromseconds(55) print(duration.tostr) # PT1S ```

Extra format: hour:minute:second

Input:

regexp ^\d{2,}:(?:[12]\d|\d):(?:[12]\d|\d)(?:\.\d{1,9})?$

Dimensioned values

Quantity with unit (SI plus a few).

UTC instant

Input: RFC 3339 with a Z.

With offset

Input: RFC 3339 with a UTC offset. Uses - for minus, and forbids negative UTC (-00:00).

With city

Offset plus IANA timezone in square brackets. Uses - for minus, and forbids negative UTC (-00:00).

Intervals (UTC, with offset, or with city)

Represent a start and end time. In general, end − start != duration ! NTP sync events, Daylight Saving Time start/end, or the user got on a plane.

One of the above, separated by a --. For example: 2022-02-26T22:55:46.22562-08:00--2022-02-26T22:55:46.22562-08:00

Repeat interval

ISO 8601 repeating interval.

Repeats 4 times, for 5 total intervals: R4/2022-02-26T22:55:46-08:00--2023-02-26T22:55:46-08:00

Repeat event

Happens every 30 sec: R4/PT30S

Repeat duration

Happens every 30 sec and lasts for 2 sec, starting at 28 sec: R4/PT28S--PT30S

Microplate wells

Normalized:

regexp ^[A-Z]{1,2}\d{1,3}$

Normalization procedure:

  • Balk if the number of digits doesn't match (e.g. H1 instead of H01)

  • 6-well: rows A to B and columns 1 to 3; e.g. B3

  • 12-well: rows A to C and columns 1 to 4; e.g. C4

  • 24-well: rows A to D and columns 1 to 6; e.g. D6

  • 48-well: rows A to F and columns 1 to 8; e.g. F8

  • 96-well: rows A to H and columns 01 to 12; e.g. H12

  • 384-well: rows A to P and columns 01 to 24; e.g. B24

  • 1536-well: rows AA to BF and columns 01 to 48; e.g. BF48

  • 3456-well: rows AA to BV and columns 01 to 72; e.g. BV72

Microplate well sets

Normalization procedure:

TODO

Operators:

  • Range in a single row: A02-A12
  • Range in a single column: A01-G01
  • Rectangular block: A02*G11
  • Read like a book: A01...C04
  • Pick and choose: A01,C04
  • Comma-separated: A01,C01

🍁 Contributing

New issues and pull requests are welcome. Please refer to the contributing guide and security policy. Generated with tyrannosaurus: tyrannosaurus new

Owner

  • Name: Douglas Myers-Turnbull
  • Login: dmyersturnbull
  • Kind: user
  • Location: Stanford, CA
  • Company: Stanford University

Citation (CITATION.cff)

abstract: "Realized"
authors:
  - family-names: Myers-Turnbull
    given-names: Douglas
    orcid: 0000-0003-3610-4808
cff-version: 1.2.0
date-released: 2020-05-10 20:06:00.00:00Z
keywords:
  - serialization
  - duration
  - datetime
  - interval
  - quantity
  - microplate
  - microwell
message: Software reference
title: CICD
version: "0.0.1-alpha0"

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 39
  • Average time to close issues: N/A
  • Average time to close pull requests: 22 days
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.77
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 39
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 29 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (36)
Top Labels
Issue Labels
Pull Request Labels
type: build (4)

Dependencies

pyproject.toml pypi
  • bandit ^1.7 develop
  • coverage ^6 develop
  • flake8 ^5 develop
  • flake8-bugbear >=22.7 develop
  • flake8-docstrings ^1.6 develop
  • hypothesis ^6 develop
  • pre-commit ^2.20 develop
  • pytest ^7 develop
  • pytest-cov ^3 develop
  • defusedxml >=0.7, <1.0
  • orjson ^3.8
  • python ^3.9
  • regex >=2022
  • tomlkit >=0.11, <1.0
.github/workflows/bump.yaml actions
  • actions/checkout v3 composite
  • commitizen-tools/commitizen-action master composite
  • crazy-max/ghaction-import-gpg v5 composite
.github/workflows/check-links.yaml actions
  • actions/checkout v3 composite
  • gaurav-nelson/github-action-markdown-link-check v1 composite
.github/workflows/deploy-docs.yaml actions
  • actions/checkout v3 composite
  • actions/deploy-pages v2 composite
  • actions/setup-python v4 composite
  • actions/upload-pages-artifact v2 composite
.github/workflows/deploy-packages.yaml actions
  • actions/download-artifact v3 composite
  • docker/build-push-action v4 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
  • sigstore/cosign-installer v3.1.1 composite
  • softprops/action-gh-release v1 composite
.github/workflows/issue-opened.yaml actions
  • actions/github-script v6 composite
.github/workflows/issue-ready-for-dev.yaml actions
  • actions/add-to-project v0.5.0 composite
  • actions/github-script v6 composite
.github/workflows/please-test.yaml actions
  • actions/checkout v3 composite
.github/workflows/pull-request.yaml actions
  • amannn/action-semantic-pull-request v5 composite
  • hmarr/debug-action v2 composite
  • marocchino/sticky-pull-request-comment v2 composite
.github/workflows/push.yaml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • coverallsapp/github-action v2 composite
  • stefanzweifel/git-auto-commit-action v4 composite
.github/workflows/review.yaml actions
.github/workflows/sync-tags.yaml actions
  • Actions-R-Us/actions-tagger latest composite
.github/workflows/test.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
package-lock.json npm
  • @chevrotain/cst-dts-gen 11.0.3 development
  • @chevrotain/gast 11.0.3 development
  • @chevrotain/regexp-to-ast 11.0.3 development
  • @chevrotain/types 11.0.3 development
  • @chevrotain/utils 11.0.3 development
  • @prettier/plugin-xml 3.2.2 development
  • @toml-tools/lexer 1.0.0 development
  • @toml-tools/parser 1.0.0 development
  • @xml-tools/parser 1.0.11 development
  • argparse 2.0.1 development
  • big-integer 1.6.51 development
  • chevrotain 7.1.1 development
  • chevrotain 11.0.3 development
  • commander 2.20.3 development
  • discontinuous-range 1.0.0 development
  • dot-properties 1.0.1 development
  • get-stdin 8.0.0 development
  • lodash-es 4.17.21 development
  • moo 0.5.2 development
  • mvdan-sh 0.10.1 development
  • nearley 2.20.1 development
  • node-sql-parser 4.10.0 development
  • prettier 3.0.3 development
  • prettier-plugin-ini 1.1.0 development
  • prettier-plugin-properties 0.3.0 development
  • prettier-plugin-sh 0.13.1 development
  • prettier-plugin-sql 0.15.1 development
  • prettier-plugin-toml 1.0.0 development
  • railroad-diagrams 1.0.0 development
  • randexp 0.4.6 development
  • regexp-to-ast 0.5.0 development
  • ret 0.1.15 development
  • sh-syntax 0.4.1 development
  • sql-formatter 12.2.4 development
  • tslib 2.6.2 development
package.json npm
  • @prettier/plugin-xml ^3.2.2 development
  • prettier-plugin-ini ^1.1.0 development
  • prettier-plugin-properties ^0.3.0 development
  • prettier-plugin-sh ^0.13.1 development
  • prettier-plugin-sql ^0.15.1 development
  • prettier-plugin-toml ^1.0.0 development