Skip to main content

Leaf is a small (just two .py files) on-demand hierachical filesystem database.

Project description

LEAF

Leaf is a small (just two .py files) on-demand hierachical filesystem database.

Install

pip install leaf-BasedLabs

Example usage

import os
import shutil

from leaf import DirectoryObject, FileObject

root_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'files')
os.mkdir(root_dir)

root = DirectoryObject(root_dir)
directory: DirectoryObject = root.add_directory('test')
print(os.path.isdir(os.path.join(root_dir, 'test'))) # True

f1: FileObject = directory.add_file('first_file.json')
f2: FileObject = directory.add_file('second_file.json')
print(os.path.isfile(os.path.join(root_dir, 'test', 'first_file.json'))) # True

# Find a file recursively
f3: FileObject | None = root.first_or_default(lambda o: o.name == 'first_file.json', recursive=True)
print(f1 == f3) # True

# Get children
for children in directory.children:
    print(children)
# FILE: D:\PycharmProjects\leaf\leaf\src\files\test\first_file.json
# FILE: D:\PycharmProjects\leaf\leaf\src\files\test\second_file.json

# Get descendants
for desc in root.descendants:
    print(desc)
# DIRECTORY: D:\PycharmProjects\leaf\leaf\src\files\test
# FILE: D:\PycharmProjects\leaf\leaf\src\files\test\first_file.json
# FILE: D:\PycharmProjects\leaf\leaf\src\files\test\second_file.json

# Write contents
f1.write_string('hello')
print(f1.read_string())
# hello

shutil.rmtree(root_dir)

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

leaf_BasedLabs-0.0.7.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

leaf_BasedLabs-0.0.7-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file leaf_BasedLabs-0.0.7.tar.gz.

File metadata

  • Download URL: leaf_BasedLabs-0.0.7.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for leaf_BasedLabs-0.0.7.tar.gz
Algorithm Hash digest
SHA256 50715a682f3b5a4dc7e5f16adbcbada714fbe69422adb9f4fd8669068ede6bab
MD5 9b4e709283ba56a720818299cd9e8fba
BLAKE2b-256 9da2923815177f6c7a7d320bcc3aeed05c598b9acf789d9f8882b9ed2863f6e2

See more details on using hashes here.

File details

Details for the file leaf_BasedLabs-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: leaf_BasedLabs-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for leaf_BasedLabs-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a8e2eda0778b2bf92be723d8000886d29c3db364dbbd333400a61dbce66df825
MD5 120b527bb5a96faa3042dbdae757b118
BLAKE2b-256 a0c02b8d9985e8247ecf7ab20d5891f606ef7ec0bbef09adfeb0414c9811df06

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