o-nakala-core


Nameo-nakala-core JSON
Version 2.5.0 PyPI version JSON
download
home_pageNone
SummaryA comprehensive Python library and CLI toolkit for the NAKALA research data repository, designed for digital humanities workflows
upload_time2025-08-27 11:08:25
maintainerNone
docs_urlNone
authorxy-liao
requires_python>=3.9
licenseNone
keywords nakala research-data repository api-client digital-humanities metadata cli academic
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # O-Nakala Core

A Python library and CLI toolkit for NAKALA research data repository workflows, designed for digital humanities and academic research teams.

## Installation

```bash
# Complete installation with CLI tools
pip install o-nakala-core[cli]

# Core library only
pip install o-nakala-core

# Development installation
git clone https://github.com/xy-liao/o-nakala-core.git
cd o-nakala-core
pip install -e ".[cli,dev]"
```

## Quick Start

### Python API
```python
from o_nakala_core import NakalaConfig, NakalaUserInfoClient

# Configure connection
config = NakalaConfig(api_key="your-api-key")

# Get user information
client = NakalaUserInfoClient(config)
user_info = client.get_user_info()
print(f"Connected as: {user_info['username']}")
```

### CLI Tools
```bash
# Set your API key
export NAKALA_API_KEY="your-api-key"

# Preview and validate metadata before upload
o-nakala-preview --csv your_data.csv --interactive

# Upload datasets from CSV
o-nakala-upload --csv your_data.csv --api-key $NAKALA_API_KEY

# Create collections
o-nakala-collection --from-folder-collections collections.csv

# Quality analysis and curation
o-nakala-curator --quality-report --scope all
```

## CLI Commands

- **`o-nakala-upload`** - Batch upload datasets with CSV-driven metadata
- **`o-nakala-preview`** - Validate and preview metadata before upload
- **`o-nakala-collection`** - Create and manage thematic collections  
- **`o-nakala-curator`** - Metadata curation and quality analysis
- **`o-nakala-user-info`** - Account management and permissions

## Key Features

- **CSV-based workflows** for reproducible research data management
- **Metadata validation** with real-time feedback and suggestions
- **Complete Dublin Core support** for comprehensive metadata
- **Batch operations** for large-scale data uploads and collection management
- **Quality analysis** tools for metadata curation and enhancement
- **Multilingual metadata** support with French/English templates
- **Production-ready error handling** with comprehensive logging

## Basic Workflow

```bash
# 1. Prepare your data in CSV format
# See examples/sample_dataset/ for format reference

# 2. Validate metadata (recommended)
o-nakala-preview --csv folder_data_items.csv --interactive

# 3. Upload data
o-nakala-upload \
  --csv folder_data_items.csv \
  --mode folder \
  --base-path ./data \
  --output upload_results.csv

# 4. Create collections (optional)
o-nakala-collection \
  --from-upload-output upload_results.csv \
  --from-folder-collections collections.csv

# 5. Quality check (recommended)
o-nakala-curator --quality-report
```

## CSV Format Example

**folder_data_items.csv**:
```csv
title,creator,description,type,file
"Research Analysis Scripts","Dupont,Jean","Python scripts for data analysis","http://purl.org/coar/resource_type/c_5ce6","code/analysis.py"
"Survey Results 2023","Martin,Claire","Raw survey data","http://purl.org/coar/resource_type/c_ddb1","data/survey.csv"
```

The library automatically transforms simple CSV formats into complete NAKALA API metadata structures.

## Documentation & Examples

For comprehensive guides, examples, and API documentation, visit the [project repository](https://github.com/xy-liao/o-nakala-core):

- **Getting Started Guide** - Step-by-step setup and first upload
- **Workflow Examples** - Complete research data workflows
- **Interactive Workshop** - Jupyter notebook with hands-on examples
- **API Reference** - Detailed technical documentation
- **Sample Datasets** - Ready-to-use example data and configurations

## Environment Setup

```bash
# Required - Get API key from NAKALA platform
export NAKALA_API_KEY="your-api-key"

# Optional - Set environment (defaults to test)
export NAKALA_BASE_URL="https://apitest.nakala.fr"  # Test environment
# export NAKALA_BASE_URL="https://api.nakala.fr"     # Production
```

## Requirements

- Python 3.9+
- Active NAKALA account with API access
- CSV files with research metadata

## Support

For issues, questions, and contributions:

- **Issues**: [GitHub Issues](https://github.com/xy-liao/o-nakala-core/issues)
- **Documentation**: [Project Repository](https://github.com/xy-liao/o-nakala-core)
- **NAKALA Platform**: [nakala.fr](https://nakala.fr)

## License

MIT License - see [LICENSE](LICENSE) file for details.

## Contributing

Contributions welcome! Please see the repository for development setup and contribution guidelines.

---

**Built for academic and research teams who need reliable, straightforward tools for research data management.**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "o-nakala-core",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "nakala, research-data, repository, api-client, digital-humanities, metadata, cli, academic",
    "author": "xy-liao",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ca/11/f9b3bf784b68445a4ebef9d87b7fbf5df2e11e848c6aa73b99d5aa43b760/o_nakala_core-2.5.0.tar.gz",
    "platform": null,
    "description": "# O-Nakala Core\n\nA Python library and CLI toolkit for NAKALA research data repository workflows, designed for digital humanities and academic research teams.\n\n## Installation\n\n```bash\n# Complete installation with CLI tools\npip install o-nakala-core[cli]\n\n# Core library only\npip install o-nakala-core\n\n# Development installation\ngit clone https://github.com/xy-liao/o-nakala-core.git\ncd o-nakala-core\npip install -e \".[cli,dev]\"\n```\n\n## Quick Start\n\n### Python API\n```python\nfrom o_nakala_core import NakalaConfig, NakalaUserInfoClient\n\n# Configure connection\nconfig = NakalaConfig(api_key=\"your-api-key\")\n\n# Get user information\nclient = NakalaUserInfoClient(config)\nuser_info = client.get_user_info()\nprint(f\"Connected as: {user_info['username']}\")\n```\n\n### CLI Tools\n```bash\n# Set your API key\nexport NAKALA_API_KEY=\"your-api-key\"\n\n# Preview and validate metadata before upload\no-nakala-preview --csv your_data.csv --interactive\n\n# Upload datasets from CSV\no-nakala-upload --csv your_data.csv --api-key $NAKALA_API_KEY\n\n# Create collections\no-nakala-collection --from-folder-collections collections.csv\n\n# Quality analysis and curation\no-nakala-curator --quality-report --scope all\n```\n\n## CLI Commands\n\n- **`o-nakala-upload`** - Batch upload datasets with CSV-driven metadata\n- **`o-nakala-preview`** - Validate and preview metadata before upload\n- **`o-nakala-collection`** - Create and manage thematic collections  \n- **`o-nakala-curator`** - Metadata curation and quality analysis\n- **`o-nakala-user-info`** - Account management and permissions\n\n## Key Features\n\n- **CSV-based workflows** for reproducible research data management\n- **Metadata validation** with real-time feedback and suggestions\n- **Complete Dublin Core support** for comprehensive metadata\n- **Batch operations** for large-scale data uploads and collection management\n- **Quality analysis** tools for metadata curation and enhancement\n- **Multilingual metadata** support with French/English templates\n- **Production-ready error handling** with comprehensive logging\n\n## Basic Workflow\n\n```bash\n# 1. Prepare your data in CSV format\n# See examples/sample_dataset/ for format reference\n\n# 2. Validate metadata (recommended)\no-nakala-preview --csv folder_data_items.csv --interactive\n\n# 3. Upload data\no-nakala-upload \\\n  --csv folder_data_items.csv \\\n  --mode folder \\\n  --base-path ./data \\\n  --output upload_results.csv\n\n# 4. Create collections (optional)\no-nakala-collection \\\n  --from-upload-output upload_results.csv \\\n  --from-folder-collections collections.csv\n\n# 5. Quality check (recommended)\no-nakala-curator --quality-report\n```\n\n## CSV Format Example\n\n**folder_data_items.csv**:\n```csv\ntitle,creator,description,type,file\n\"Research Analysis Scripts\",\"Dupont,Jean\",\"Python scripts for data analysis\",\"http://purl.org/coar/resource_type/c_5ce6\",\"code/analysis.py\"\n\"Survey Results 2023\",\"Martin,Claire\",\"Raw survey data\",\"http://purl.org/coar/resource_type/c_ddb1\",\"data/survey.csv\"\n```\n\nThe library automatically transforms simple CSV formats into complete NAKALA API metadata structures.\n\n## Documentation & Examples\n\nFor comprehensive guides, examples, and API documentation, visit the [project repository](https://github.com/xy-liao/o-nakala-core):\n\n- **Getting Started Guide** - Step-by-step setup and first upload\n- **Workflow Examples** - Complete research data workflows\n- **Interactive Workshop** - Jupyter notebook with hands-on examples\n- **API Reference** - Detailed technical documentation\n- **Sample Datasets** - Ready-to-use example data and configurations\n\n## Environment Setup\n\n```bash\n# Required - Get API key from NAKALA platform\nexport NAKALA_API_KEY=\"your-api-key\"\n\n# Optional - Set environment (defaults to test)\nexport NAKALA_BASE_URL=\"https://apitest.nakala.fr\"  # Test environment\n# export NAKALA_BASE_URL=\"https://api.nakala.fr\"     # Production\n```\n\n## Requirements\n\n- Python 3.9+\n- Active NAKALA account with API access\n- CSV files with research metadata\n\n## Support\n\nFor issues, questions, and contributions:\n\n- **Issues**: [GitHub Issues](https://github.com/xy-liao/o-nakala-core/issues)\n- **Documentation**: [Project Repository](https://github.com/xy-liao/o-nakala-core)\n- **NAKALA Platform**: [nakala.fr](https://nakala.fr)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions welcome! Please see the repository for development setup and contribution guidelines.\n\n---\n\n**Built for academic and research teams who need reliable, straightforward tools for research data management.**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive Python library and CLI toolkit for the NAKALA research data repository, designed for digital humanities workflows",
    "version": "2.5.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/xy-liao/o-nakala-core/issues",
        "Documentation": "https://nakala.fr/documentation",
        "Homepage": "https://nakala.fr",
        "Repository": "https://github.com/xy-liao/o-nakala-core"
    },
    "split_keywords": [
        "nakala",
        " research-data",
        " repository",
        " api-client",
        " digital-humanities",
        " metadata",
        " cli",
        " academic"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1c72d2e095408f73db2335d1cf88138275963144dcbf040ecf0f8c45532dad31",
                "md5": "3db44f59c64af6f9d71ffeaebceedadd",
                "sha256": "73568a9151199cf78effabd42f4331565557969d6a2fbb79b062b526f83c691d"
            },
            "downloads": -1,
            "filename": "o_nakala_core-2.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3db44f59c64af6f9d71ffeaebceedadd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 135321,
            "upload_time": "2025-08-27T11:08:24",
            "upload_time_iso_8601": "2025-08-27T11:08:24.417421Z",
            "url": "https://files.pythonhosted.org/packages/1c/72/d2e095408f73db2335d1cf88138275963144dcbf040ecf0f8c45532dad31/o_nakala_core-2.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ca11f9b3bf784b68445a4ebef9d87b7fbf5df2e11e848c6aa73b99d5aa43b760",
                "md5": "20b0725ad6bf72223cfd62acce943a50",
                "sha256": "276b17fa7170d6f2fab9612a6712c716f489722e687e0a8239e74eef5057e9ba"
            },
            "downloads": -1,
            "filename": "o_nakala_core-2.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "20b0725ad6bf72223cfd62acce943a50",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 123895,
            "upload_time": "2025-08-27T11:08:25",
            "upload_time_iso_8601": "2025-08-27T11:08:25.553250Z",
            "url": "https://files.pythonhosted.org/packages/ca/11/f9b3bf784b68445a4ebef9d87b7fbf5df2e11e848c6aa73b99d5aa43b760/o_nakala_core-2.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-27 11:08:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "xy-liao",
    "github_project": "o-nakala-core",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "o-nakala-core"
}
        
Elapsed time: 0.47525s