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.9.tar.gz (8.7 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.9-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file leaf_basedlabs-0.0.9.tar.gz.

File metadata

  • Download URL: leaf_basedlabs-0.0.9.tar.gz
  • Upload date:
  • Size: 8.7 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.9.tar.gz
Algorithm Hash digest
SHA256 1397cfdd9b72385168dabddc307d48a26a4da689480a09ebf5986360b97e540a
MD5 2101c9e26bac7fb72e274f771962617c
BLAKE2b-256 7ad86f869d5869c410dc4877cce71a373e1fcb0a37a2925355f07dcd607b322f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: leaf_BasedLabs-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 10.1 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e35b94369a2298ea6718a963535fb3cd016beca38ea1a8af9b4327228a040236
MD5 7bb9ce7edaaa770cd90bb08f5f63ca8d
BLAKE2b-256 0428c7eb16cd2d30de0dddbbf11bdbe81ad117263b2fbe2aec567237c446ee85

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