{"id":22360523,"url":"https://github.com/darwinz/oo-file-system","last_synced_at":"2025-07-30T13:31:59.295Z","repository":{"id":53527022,"uuid":"268483519","full_name":"darwinz/oo-file-system","owner":"darwinz","description":"An object-oriented file-system developed in Python","archived":false,"fork":false,"pushed_at":"2022-10-31T22:14:12.000Z","size":45,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-07-25T11:11:15.455Z","etag":null,"topics":["filesystem","hacktoberfest","object-oriented-programming","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darwinz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-01T09:49:29.000Z","updated_at":"2024-11-24T14:26:24.000Z","dependencies_parsed_at":"2023-01-20T13:01:39.778Z","dependency_job_id":null,"html_url":"https://github.com/darwinz/oo-file-system","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/darwinz/oo-file-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwinz%2Foo-file-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwinz%2Foo-file-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwinz%2Foo-file-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwinz%2Foo-file-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darwinz","download_url":"https://codeload.github.com/darwinz/oo-file-system/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darwinz%2Foo-file-system/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267875497,"owners_count":24158780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["filesystem","hacktoberfest","object-oriented-programming","python"],"created_at":"2024-12-04T16:17:16.235Z","updated_at":"2025-07-30T13:31:58.570Z","avatar_url":"https://github.com/darwinz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Object-oriented file system\n\n![Actions Status](https://github.com/darwinz/oo-file-system/workflows/GitHub%20Actions/badge.svg)\n\nAn object-oriented file-system developed in Python\n\n### File system design\n\nTypes of file system entities\n* Drive\n* Folder\n* Text File\n* Zip File\n\nThese entities obey the following relations:\n* A folder, a drive or a zip file, may contain zero to many other folders, or files (text or zip)\n* A text file does not contain any other entity\n* A drive is not contained in any entity\n* Any non-drive entity must be contained in another entity\n\nIf entity A contains entity B then we say that A is the parent of B\n\nEvery entity has the following properties:\n* Type – The type of the entity (one of the 4 types above)\n* Name - An alphanumeric string. Two entities with the same parent cannot have the same name. Similarly, two drives cannot have the same name\n* Path – The concatenation of the names of the containing entities, from the drive down to and including the entity\n* A text file has a property called Content which is a string\n* Size – an integer defined as follows:\n    * For a text file – it is the length of its content\n    * For a drive or a folder, it is the sum of all sizes of the entities it contains\n    * For a zip file, it is one half of the sum of all sizes of the entities it contains\n\nThe system is capable of supporting the following file-system-like operations:\n1. Create – Creates a new entity\n2. Delete – Deletes an existing entity (and all the entities it contains)\n3. Move – Changing the parent of an entity\n4. WriteToFile – Changes the content of a text file\n\n### End User module\n\nAn \"end-user\" module can be used to interact with the system.  With it,\nyou can create folders, text files, etc. and write to files, along\nwith checking the size of folders and files in the file system\n\n### Testing\n\nYou can run unit tests by running the following command\n\n```shell\npython -m unittest tests/test_*\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarwinz%2Foo-file-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarwinz%2Foo-file-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarwinz%2Foo-file-system/lists"}