Skip to main content

Library for reading legacy DBF file with library data

Project description

Skoufas Library DBF Reader

Functions to read and convert from the DBF file used to track books in the Skoufas library

Columns in DBF file

Column Name (english) Name (Greek)
A01 Author surname, name, language Επώνυμο, Όνομα συγγραφέα
A02 title, has_cd Τίτλος, έχει CD
A03 subtitle, has_cd Υπότιτλος, έχει CD
A04 Dewey Ταξινομικός αριθμός
A05 entry_number αριθμός εισαγωγής
A06 translator, edition, entry_number μεταφραστής, έκδοση, αριθμός εισαγωγής
A07 edition, entry_number έκδοση, αριθμός εισαγωγής
A08 editor, entry_number εκδότης, αριθμός εισαγωγής
A09 editor place τοπος έκδοσης
A10 edition year ετος έκδοσης
A11 pages σελιδες
A12 topics, has_cd θέματα, έχει CD
A13 topics, has_cd θέματα, έχει CD
A14 topics, has_cd θέματα, έχει CD
A15 topics θέματα
A16 curator επιμελητής
A17 has_cd, copies, donations, offprint, volume, notes, isbn έχει CD, αντίτυπα, δωρεές, ανάτυπα, τόμοι/τεύχη, σημειώσεις, isbn
A18 material, entry_number, has_cd, copies, volume, notes, isbn συνοδευτικό υλικό, έχει CD, αντίτυπα, τόμοι/τεύχη, σημειώσεις, isbn
A19 isbn, entry_number isbn, αριθμός εισαγωγής
A20 topics, volume θέματα, τόμοι/τεύχη
A21 offprint, notes ανάτυπα, σημειώσεις
A22 topics, has_cd, isbn θέματα, έχει CD, isbn
A23 topics θέματα
A24 topics θέματα
A25
A26
A27
A28
A29
A30 has_cd, has_dvd, copies, donations, offprint, volume, material, notes, isbn έχει CD, έχει DVD, αντίτυπα, δωρεές, ανάτυπα, τόμοι/τεύχη, συνοδευτικό υλικό, σημειώσεις, isbn

Extractor functions

  • def authors_from_a01(a01: Optional[str]) -> list[str]
  • def copies_from_a17_a18_a30(a17: Optional[str], a18: Optional[str], a30: Optional[str]) -> Optional[int]
  • def curator_from_a16(a16: Optional[str]) -> Optional[str]
  • def dewey_from_a04_a05(a04: Optional[str], a05: Optional[str]) -> Optional[str]
  • def donation_from_a17_a30(a17: Optional[str], a30: Optional[str]) -> Optional[str]
  • def edition_from_a07(a07: Optional[str]) -> Optional[str]
  • def edition_year_from_a09_a10(a09: Optional[str], a10: Optional[str]) -> Optional[int]
  • def editor_from_a08_a09(a08: Optional[str], a09: Optional[str]) -> Optional[tuple[Optional[str], Optional[str]]]
  • def entry_numbers_from_a04_a05_a06_a07_a08_a18_a19(a04: Optional[str], a05: Optional[str], a06: Optional[str],a07: Optional[str],a08: Optional[str],a18: Optional[str],a19: Optional[str],) -> list[str]
  • def has_cd_from_a02_a03_a12_a13_a14_a17_a18_a22_a30(many_lines: Optional[list[Optional[str]]]) -> bool
  • def has_dvd_from_a30(many_lines: Optional[list[Optional[str]]]) -> bool
  • def isbn_from_a17_a18_a19_a22_a30(a17in: Optional[str], a18in: Optional[str], a19in: Optional[str], a22in: Optional[str], a30in: Optional[str]) -> Optional[str]
  • language_from_a01_a02(a01: Optional[str], a02: Optional[str]) -> Optional[str]
  • def material_from_a18_a30(a18: Optional[str], a30: Optional[str]) -> Optional[str]
  • def notes_from_a17_a18_a21_a30(a17: Optional[str], a18: Optional[str], a21: Optional[str], a30: Optional[str]) -> Optional[str]
  • def offprint_from_a17_a21_a30(a17: Optional[str], a21: Optional[str], a30: Optional[str]) -> bool
  • def pages_from_a11(a11: Optional[str]) -> Optional[int]
  • def subtitle_from_a03(a03: Optional[str]) -> Optional[str]
  • def title_from_a02(a02: Optional[str]) -> Optional[str]
  • def topics_from_a12_to_a15_a20_a22_to_a24( many_lines: Optional[list[Optional[str]]],) -> list[str]
  • def translator_from_a06(a06: Optional[str]) -> Optional[str]
  • def volume_from_a17_a18_a20_a30(a17: Optional[str], a18: Optional[str], a20: Optional[str], a30: Optional[str]) -> Optional[str]

Checks required

  • Duplicated Entry Numbers (~800)
  • Non-numeric entry numbers (~130)
  • Missing entry numbers (~200)
  • Weird deweys and replacements (~300)
  • Translator corrections
  • author corrections
  • εκδοσεις
  • εκδοτης (field8)
  • field9
  • field10
  • isbn

Columns required

BookEntry

  • Title - Τίτλος
  • Subtitle - Υπότιτλος
  • Dewey - Ταξινομικός Αριθμός Dewey
  • Edition - Έκδοση
  • EditionDate - Έτος Έκδοσης
  • EditorId (FK: Editor)
  • Pages - Σελίδες Αριθμητικά
  • Volumes - Τόμοι/Τεύχη
  • Notes - Σημειώσεις
  • Material - Υλικό
  • HasCD - Έχει
  • HasDVD - Έχει
  • ISBN
  • ISSN
  • EAN
  • Offprint - ΑΝΑΤΥΠΟ

Author - Συγγραφέας

  • Name
  • Surname
  • Middlename
  • Fullname

Authorship (Many-to-Many)

  • AuthorId (FK: Author)
  • BookEntryId (FK: BookEntry)

Translator - Μεταφραστής

  • Name
  • Surname
  • Middlename
  • Fullname

Translation

  • TranslatorId (FK: Translator)
  • BookEntryId (FK: BookEntry)

Curator - Επιμελητής

  • Name
  • Surname
  • Middlename
  • Fullname

Curation

  • CuratorId (FK: Curator)
  • BookEntryId (FK: BookEntry)

Editor

  • Name
  • Place

Entry Numbers (one-to-many) - Αριθμοί Εισαγωγής

  • EntryNumber (unique)
  • BookEntryId (FK: BookEntry)
  • Copies

Topic - Θέμα

  • Name

BookInTopic (many-to-many)

  • TopicId (FK: Topic)
  • BookEntryId (FK: BookEntry)

Donor - Δωρητής

  • Name
  • Surname
  • Middlename
  • Fullname

Donation (Many-to-Many) - Δωρεά

  • DonorId (FK: Donor)
  • EntryNumberId (FK: EntryNumber)

Customer - Πελάτες

  • Name
  • Surname
  • Middlename
  • FullName
  • IdNumber
  • IdType
  • PhoneNumber
  • Email
  • Address

Loan - Δανεισμός

  • CustomerId (FK: Customer)
  • EntryNumberId (FK: EntryNumber)
  • StartDateTime
  • ExpectedEndDateTime
  • EndDateTime
  • Note

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

skoufas_dbf_reader-2025.12.28.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

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

skoufas_dbf_reader-2025.12.28-py3-none-any.whl (3.3 MB view details)

Uploaded Python 3

File details

Details for the file skoufas_dbf_reader-2025.12.28.tar.gz.

File metadata

  • Download URL: skoufas_dbf_reader-2025.12.28.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for skoufas_dbf_reader-2025.12.28.tar.gz
Algorithm Hash digest
SHA256 68e26a6491c8eccbfef583d49fc313bd9f50eb7297359921ec5eca1af250fc6a
MD5 2c862924b34cf1ac5d99c6004066168d
BLAKE2b-256 3e7189c8c0aa62a296504e082f3948f048a86b8d48462335d8f7d9c51de64adb

See more details on using hashes here.

Provenance

The following attestation bundles were made for skoufas_dbf_reader-2025.12.28.tar.gz:

Publisher: CI.yml on skoufas/skoufas-dbf-reader

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

File details

Details for the file skoufas_dbf_reader-2025.12.28-py3-none-any.whl.

File metadata

File hashes

Hashes for skoufas_dbf_reader-2025.12.28-py3-none-any.whl
Algorithm Hash digest
SHA256 0ecd7cc54cfe24bf78b26acbf59d4da1618f9ce2bb81bb2d137e1dd21a745def
MD5 e6d8d5133bd7ca062a32fc52913d6d53
BLAKE2b-256 063a9acd314723b9324b7ac355d47cb3d20e601418222306b57935b4be872de9

See more details on using hashes here.

Provenance

The following attestation bundles were made for skoufas_dbf_reader-2025.12.28-py3-none-any.whl:

Publisher: CI.yml on skoufas/skoufas-dbf-reader

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