Skip to main content

Modernized InterMine WebService client (Python 3.14+)

Project description

intermine314

Python 3.14+ client for InterMine web services.

This package modernizes the historical InterMine Python client for current Python runtimes, with a focus on practical reliability for research use.

Ownership and Credit

Copyright (c) 2026 Monash University, Plant Energy and Biotechnology Lab.

Project ownership and stewardship:

  • Kris Kari
  • Dr. Maria Ermakova
  • Plant Energy and Biotechnology Lab, Monash University
  • Contact: toffe.kari@gmail.com

Original credit:

  • The original InterMine team and community contributors are credited for foundational work that this package builds upon.

License

Licensed under the MIT License (see LICENSE-LGPL, which now contains the active MIT license text and notice).

Requirements

  • Python 3.14+

Supported Mines

Priority support is focused on:

  • MaizeMine
  • ThaleMine
  • LegumeMine
  • OakMine
  • WheatMine

Installation

pip install intermine314

Repository: https://github.com/kriskari/intermine314

Quick Example

from intermine314.webservice import Service

service = Service("https://www.flymine.org/query/service")
query = service.new_query("Gene")
query.add_view("Gene.symbol", "Gene.length")

for row in query.run_parallel(page_size=2000, max_workers=16, prefetch=16):
    print(row)

Parallel Worker Defaults

intermine314 defaults parallel query workflows to 16 workers.

You can tune this per query based on your hardware and network:

  • Smaller machines or constrained environments: use 4 to 8.
  • High-core desktops/workstations with stable network: use 16 to 32.
  • If remote endpoints rate-limit aggressively, lower workers to reduce retries/timeouts.
rows = query.run_parallel(
    row="dict",
    page_size=2000,
    max_workers=16,  # override per machine/workload
    prefetch=16,     # typically match max_workers
)

Testing

Run unit tests against the local mock service:

python setup.py test

Run live tests:

python setup.py livetest

Upgrades for Python 3.14

The following package upgrades were applied in this modernization cycle:

  • Raised runtime baseline to Python 3.14 (pyproject.toml, README.md, CI, tox).
  • Updated packaging metadata toward modern PEP 621 layout.
  • Simplified dependency management (requirements.txt, optional extras in pyproject.toml).
  • Removed Python 2 compatibility remnants from runtime modules.
  • Removed Python 2 compatibility remnants from tests.
  • Modernized query parallel execution behavior in intermine314/query.py:
    • bounded in-flight work
    • configurable prefetch
    • fixed edge handling for start and size=None
    • used executor.map(..., buffersize=...) for ordered mode
  • Updated CI configuration for Python 3.14.
  • Verified local unit test suite and live mine connectivity checks.

Notes

Documentation/tutorial links from legacy upstream sources are intentionally omitted for now while docs are being updated for the Python 3.14 package line.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intermine314-0.1.1.tar.gz (113.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

intermine314-0.1.1-py3-none-any.whl (78.1 kB view details)

Uploaded Python 3

File details

Details for the file intermine314-0.1.1.tar.gz.

File metadata

  • Download URL: intermine314-0.1.1.tar.gz
  • Upload date:
  • Size: 113.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for intermine314-0.1.1.tar.gz
Algorithm Hash digest
SHA256 664ea1c4dab205ad95ae0f472d820e7fe2fc639750856762c89d2273f57bb2d4
MD5 3433de6f80936ffa37d08c2c926d43cc
BLAKE2b-256 6b8dc07cd6375b5a6e6a0d2e9352e660ea1efc213ecbb58566cd08eb7e2d2deb

See more details on using hashes here.

Provenance

The following attestation bundles were made for intermine314-0.1.1.tar.gz:

Publisher: publish-pypi.yml on karikris/intermine314

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file intermine314-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: intermine314-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 78.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for intermine314-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7b65db1a92f53f4ee105d3e8f0fccdffe7b4c5118bfd768961143ab60b8e1c3d
MD5 090c1128c4983531b9cba95890556cf7
BLAKE2b-256 a9d23f3631ea09d7ad610f65a7f60ff45d5d3d1476d8544a6cc5cd5058196af5

See more details on using hashes here.

Provenance

The following attestation bundles were made for intermine314-0.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on karikris/intermine314

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page