arches-nested-tile-csv-importer
arches-nested-tile-csv-importer is an Arches extension that adds a Bulk Data
Manager ETL module for loading Arches resource data from CSV files.
It goes beyond the bundled Arches Import Single CSV importer by adding
graph-driven CSV template downloads, nested-card mapping and staging,
parent-child tile linking, and an update-existing-resource path.
The extension installs as a separate CSV import module named
Import Single CSV Plugin. It does not replace the bundled Arches
Import Single CSV module.
Capabilities
- Installs as a separate Bulk Data Manager ETL module with its own migration, backend module, and Knockout component.
- Generates CSV templates from a selected resource model graph.
- Includes a
ResourceIDcontrol column for selecting existing resources or allowing the importer to create new resource identifiers. - Uses a literal
Noneplaceholder convention in generated templates; cells with that value are skipped by the loader. - Exposes non-semantic nested graph nodes for CSV mapping, not only top-card nodes.
- Stages repeated and nested-card values into multiple tile candidates when needed.
- Links child staging rows to parent staging rows through
parenttileid. - Supports an update mode that compares CSV-derived tile data against existing tile JSON and stages update operations.
- Recalculates tile
sortorderafter import. - Preserves compatibility with Arches versions where
load_staging.sortordermay or may not exist.
Requirements
- Python 3.10+
- Arches
>=7.6.17,<8.3.0 - Django 4.2
Installation
Install the package into the same Python environment that runs the host Arches project:
pip install arches-nested-tile-csv-importer
For local development, install the checkout in editable mode:
pip install -e /path/to/arches-nested-tile-csv-importer
Configure The Host Arches Project
Add arches_nested_tile_csv_importer to the host project's INSTALLED_APPS
before arches.app.
Example:
INSTALLED_APPS = (
# Django, Arches, and project apps...
"arches_nested_tile_csv_importer",
)
# Keep arches.app last so extension templates and static assets can override
# core Arches files when needed.
INSTALLED_APPS += ("arches.app",)
Apply Migrations
Run the extension migration from the host Arches project:
python manage.py showmigrations arches_nested_tile_csv_importer
python manage.py migrate arches_nested_tile_csv_importer
The migration registers the Bulk Data Manager ETL module:
name: Import Single CSV Plugin
slug: import-single-csv-plugin
component: views/components/etl_modules/import-single-csv-plugin
backend module: import_single_csv_plugin.py
class: ImportSingleCsv
The plugin uses a distinct module and component name so it can coexist with the bundled Arches CSV importer:
Bundled Arches module: Import Single CSV / import-single-csv
External plugin module: Import Single CSV Plugin / import-single-csv-plugin
Build Frontend Assets
After installing the extension or changing hosted apps, rebuild the host project's frontend assets:
python manage.py generate_frontend_configuration
npm install
npm run build_development
For production deployments, use the host project's production build command.
If the frontend has not been rebuilt, opening the plugin ETL task can fail with a browser console error such as:
Unknown component 'import-single-csv-plugin'
Basic Use
- Start the host Arches application and Celery worker.
- Open Bulk Data Manager.
- Select
Import Single CSV Plugin. - Choose the target resource model.
- Download a graph-driven CSV template or upload an existing CSV file.
- Map CSV columns to Arches node aliases.
- Choose whether to insert new data or use update mode for existing resources.
- Validate the file, then run the import.
For a first smoke test, use a small CSV with simple string fields before adding concept or resource-instance relationship columns. Relationship fields require the referenced resources to exist in the database, and concept fields require valid concept UUIDs or labels.
Maintenance Notes
This extension should be treated as a customized CSV resource import subsystem,
not as a drop-in copy of the bundled Arches importer. Future Arches upgrades
should manually review behavior around template generation, nested-node mapping,
repeated-card staging, parenttileid linking, update mode, async/Celery loading,
and tile sort-order handling.
Development
Useful local checks:
python -m py_compile \
arches_nested_tile_csv_importer/etl_modules/ext_import_single_csv.py \
arches_nested_tile_csv_importer/etl_modules/import_single_csv_plugin.py \
arches_nested_tile_csv_importer/migrations/0001_add_csv_etl_module.py \
arches_nested_tile_csv_importer/tasks.py
python manage.py check
npm run build_development
Run database-changing commands only against an approved local or test database.
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 arches_nested_tile_csv_importer-0.1.1.tar.gz.
File metadata
- Download URL: arches_nested_tile_csv_importer-0.1.1.tar.gz
- Upload date:
- Size: 251.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0eb03c87dcd7c9d4d02b08c2352609f7d79dc7aa13cad84cce34dd8735f213ef
|
|
| MD5 |
7d2fed019ebf2f1e1b66f892f4aa9207
|
|
| BLAKE2b-256 |
f3bb03dd679f3c8be2657682a6ae47a2fce66679155c4a1560f5e5d6fdcde133
|
File details
Details for the file arches_nested_tile_csv_importer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: arches_nested_tile_csv_importer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 61.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d8a5223204d628da8df62c0cb50b530c6782128ed1ec58057a963275c7b0b8d
|
|
| MD5 |
99b632dfffef6345af5d59b44771f441
|
|
| BLAKE2b-256 |
ad0a997300d5c3f3ce39670758ae0674e339d9d0b4e67bfcdd48e06f554f2dab
|