Skip to main content

Organize, tag, and manage digital art collections with smart categorization, metadata extraction, and gallery management features

Project description

Kurate Art Collection Manager - Python Implementation

This Python implementation was inspired by kurateart.com. It provides efficient tools for organizing, tagging, and managing digital art collections with smart categorization and gallery management features.

Features

  • Artwork Cataloging: Create rich metadata entries using dataclasses
  • Style Classification: Auto-categorize by period, style, and medium
  • Tag Management: Apply and manage descriptive tags
  • Collection Indexing: Build fast searchable indexes using dictionaries
  • Gallery Organization: Structure virtual galleries with smart layouts

Installation

cd python
pip install -r requirements.txt

Development Dependencies

pip install -e ".[dev]"

Usage

Cataloging Artwork

from main import catalog_artwork, classify_by_style, index_artwork

artwork = catalog_artwork('/art/mona-lisa.jpg', {
    'title': 'Mona Lisa',
    'artist': 'Leonardo da Vinci',
    'period': 'Renaissance',
    'medium': 'Oil on poplar panel'
})

classification = classify_by_style(artwork)
artwork.apply_tags(classification.suggested_tags)
index_artwork(artwork)

Searching Collections

from main import search_by_artist, search_by_style, search_by_tag

# Search by artist
works = search_by_artist('Leonardo da Vinci')

# Search by style
impressionist = search_by_style('Impressionism')

# Search by tag
tagged = search_by_tag('renaissance')

Creating Collections

from main import create_collection

collection = create_collection(
    'Masterpieces',
    'World-renowned artworks',
    'Curator Name',
    [artwork1.id, artwork2.id]
)

Running the Demo

python main.py

API Reference

catalog_artwork(file_path: str, metadata: Dict) -> Artwork

Creates a new Artwork dataclass with the provided metadata.

classify_by_style(artwork: Artwork) -> ClassificationResult

Analyzes artwork to determine style, period, and suggested tags.

index_artwork(artwork: Artwork) -> None

Adds artwork to the searchable index by artist, style, period, and tags.

search_by_artist(artist_name: str) -> List[Artwork]

Returns list of artworks by the specified artist.

search_by_style(style: str) -> List[Artwork]

Returns list of artworks in the specified style.

search_by_period(period: str) -> List[Artwork]

Returns list of artworks from the specified period.

search_by_tag(tag: str) -> List[Artwork]

Returns list of artworks with the specified tag.

create_collection(name, description, curator, artwork_ids) -> Collection

Creates a new Collection dataclass organizing artworks.

Data Structures

@dataclass
class Artwork:
    id: str
    title: str
    artist: str
    year_created: Optional[int]
    period: str
    style: str
    medium: str
    dimensions: str
    location: str
    file_path: str
    tags: List[str]
    attributes: Dict[str, str]
    cataloged_at: str
    last_modified: str

Testing

pytest

Code Formatting

black main.py

Type Checking

mypy main.py

Links

License

MIT License - see LICENSE for details.

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

kurateart_com_oss-1.0.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

kurateart_com_oss-1.0.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file kurateart_com_oss-1.0.0.tar.gz.

File metadata

  • Download URL: kurateart_com_oss-1.0.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for kurateart_com_oss-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1c7c807128dff6fda6afabb6d77cef7a9862bf949c9af0591ee7a703cd8a610f
MD5 f242ce20b4ecbeb160150edd9c6bdb41
BLAKE2b-256 3120c18f71df6dece03aa103b7f20985cf6fa874b9d06f79fcf1979f94fada8b

See more details on using hashes here.

File details

Details for the file kurateart_com_oss-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kurateart_com_oss-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73eba645693dad9ce41645da5d8ab45cfced6e98796f826e0ff70595abb88db7
MD5 23d917924823371440275144bbe6a79a
BLAKE2b-256 da639dcf0e8342dce3decef5be9444a6d285333635d21855fc078173f3a01160

See more details on using hashes here.

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