Skip to main content

synapseconvert

A simple two-way converter for Synapse-style libraries (collections → categories → items) using Excel and JSON. This is intended for developers working with Synapse, a research transport protocol designed for structured academic resources.


📦 Installation

The recommended way to install is:

pip install synapseconvert

If that doesn’t work, try:

python3 -m pip install synapseconvert

⚠️ On macOS or Linux, you may need sudo for a global install:

sudo python3 -m pip install synapseconvert

Alternatively, to avoid permission issues and keep things clean, use a virtual environment:

python3 -m venv venv
source venv/bin/activate
pip install synapseconvert

🔍 Confirm it installed correctly:

which synapse-upconvert
synapse-upconvert --help

If the command isn’t found, try running it as a module:

python3 -m synapseconvert.upconvert path/to/input.xlsx path/to/output.json

Or install from source:

git clone https://github.com/BiblicalStory/synapseconvert.git
cd synapseconvert
pip install -e .

🛠 Usage

Convert from Excel to JSON (Upconvert)

synapse-upconvert path/to/input.xlsx path/to/output.json

This reads a spreadsheet and produces a properly nested Synapse metadata file.

Convert from JSON to Excel (Downconvert)

synapse-downconvert path/to/input.json path/to/output.xlsx

This flattens a Synapse-style JSON file into a spreadsheet for editing or review.


📄 Spreadsheet Format

The spreadsheet must contain at least the following columns:

✅ Required Columns

  • collection – the name of the collection (uniform across all rows)
  • category – the name of the group the item belongs to

✅ Optional Item Fields

  • title, description, author, url, date, etc. – all other metadata fields are treated as item fields

✅ Optional Collection-Level Fields

These are only read from the first row and apply to the whole collection:

  • designator – short tag used to identify the collection (e.g., "BST")
  • collection_url – base URL for the collection homepage or API

If these are omitted, the following defaults apply:

  • designator: "UNK"
  • collection_url: "https://substrate.biblicalstory.org"

⚠️ Tags Field (Special Case)

  • If included, tags must be valid JSON (not comma-separated strings).
  • Example:
["Genesis", "Luke"]

If the tags field contains malformed JSON (e.g., Genesis, Luke), the script will skip it and print a warning.


📁 Sample Templates

  • sample.xlsx
  • sample.json

These are included in the installed package and available from the GitHub repo.


🧠 Why This Exists

Synapse is designed to bring remote research libraries directly into Obsidian. Since BiblicalStory.org cannot create Synapse files for every research repository in existence, this tool allows developers to build and maintain their own Synapse libraries using spreadsheets or JSON. These libraries can then be added to Synapse in Obsidian to allow live query and navigation.


🔧 Developer Tools

For advanced usage, clone this repo and run locally:

git clone https://github.com/BiblicalStory/synapseconvert.git
cd synapseconvert
pip install -e .

This allows you to edit the source code and extend it for your own domains or institutions.


© 2025 BiblicalStory Incorporated. MIT License.

Metadata

Release files for synapseconvert 1.0.0

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

Source distribution (sdist)

Source distribution for synapseconvert 1.0.0
File Size Uploaded Provenance
synapseconvert-1.0.0.tar.gz 5.3 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 11.4 kB

Release files / synapseconvert-1.0.0.tar.gz

Download URL synapseconvert-1.0.0.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
beaf86bc1714926d5ca5529b1b5a8467f528c0f39e8ee50a398a5a8f6d738cd7
BLAKE2b-256 checksum
How to use checksums
4347417db78ebc7b3626d82f13aee86503b35433d7fba4785af82b99cf5aec03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / synapseconvert-1.0.0-py3-none-any.whl

Download URL synapseconvert-1.0.0-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a6df6c3c9d0621d2a47b9890dccf9f1fe8088455fbee40645525885a0b025bf
BLAKE2b-256 checksum
How to use checksums
16dae1d87bee67e6ba61f9da1d8a4c0599770ad4ffc6c3bc09660b028b05045a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Security for synapseconvert 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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