{"id":20452693,"url":"https://github.com/sl1dee36/pyufo-db","last_synced_at":"2026-02-01T03:38:22.356Z","repository":{"id":260546083,"uuid":"880384842","full_name":"SL1dee36/pyufo-db","owner":"SL1dee36","description":"PY-UFO-DB (Python Unified Flexible Object Database) - это легковесная объектно-ориентированная база данных, написанная на Python. Она предоставляет простой интерфейс для создания, управления и хранения структурированных данных в памяти и на диске.","archived":false,"fork":false,"pushed_at":"2024-12-17T06:55:10.000Z","size":37,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-07T16:04:59.520Z","etag":null,"topics":["database"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/py-ufo-db","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SL1dee36.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-29T16:18:41.000Z","updated_at":"2024-12-17T06:55:14.000Z","dependencies_parsed_at":"2024-12-17T07:48:42.353Z","dependency_job_id":"c9e3d356-abcb-42b8-9073-24ac9da5d14a","html_url":"https://github.com/SL1dee36/pyufo-db","commit_stats":null,"previous_names":["sl1dee36/pyufo-db"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SL1dee36/pyufo-db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SL1dee36%2Fpyufo-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SL1dee36%2Fpyufo-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SL1dee36%2Fpyufo-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SL1dee36%2Fpyufo-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SL1dee36","download_url":"https://codeload.github.com/SL1dee36/pyufo-db/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SL1dee36%2Fpyufo-db/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28966812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T02:14:24.993Z","status":"ssl_error","status_checked_at":"2026-02-01T02:13:55.706Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["database"],"created_at":"2024-11-15T11:09:58.477Z","updated_at":"2026-02-01T03:38:22.339Z","avatar_url":"https://github.com/SL1dee36.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Unified Flexible Object Database\n\n[![Documentation](https://img.shields.io/badge/Documentation-green?style=flat\u0026logo=github\u0026labelColor=gray\u0026link=https://github.com/SL1dee36/pyufo-db/blob/main/Documentation/DOCS.md)](https://github.com/SL1dee36/pyufo-db/blob/main/Documentation/DOCS.md)\n\n\nPY-UFO-DB (Python Unified Flexible Object Database) - это легковесная объектно-ориентированная база данных, написанная на Python.  Она предоставляет простой интерфейс для создания, управления и хранения структурированных данных в памяти и на диске. py-ufo-db вдохновлена проектом [UFO-DB](https://github.com/atxxxm/UFO-DB), написанным на C++, но переосмыслена и реализована на Python для большей гибкости и простоты использования.  \n\n_**Важно:** PY-UFO-DB не предназначена для хранения информации об НЛО, а является универсальной базой данных для любых данных._\n\n## Основные возможности\n\n* **Простота использования:** py-ufo-db предоставляет интуитивно понятный API для работы с данными.\n* **Гибкость:**  Поддерживает динамическую структуру таблиц - вы можете добавлять и изменять столбцы по мере необходимости.\n* **Сохранение на диск:**  Возможность сохранять и загружать данные из файла для персистентного хранения.\n* **Обработка ошибок:** Встроенная обработка распространенных ошибок, таких как дублирование имен таблиц и доступ к несуществующим данным.\n* **Кодировка UTF-8:** Поддержка Unicode для хранения данных на различных языках.\n\n## Установка\n\nВы можете установить pyufo-db с помощью pip:\n\n```bash\npip install py-ufo-db\n```\n\nИли клонировать репозиторий с GitHub:\n\n```bash\ngit clone https://github.com/SL1dee36/pyufo-db.git\n```\n\n## Документация\n\nПолная документация доступна по ссылке: [DOCS.md](https://github.com/SL1dee36/pyufo-db/blob/main/Documentation/DOCS.md)\n\n## Пример использования\n\n```python\nfrom py_ufo_db import *\n\ndb = RelativeDB()\n\ncolumns = [\n    {\"name\": \"name\", \"type\": \"str\"},\n    {\"name\": \"city\", \"type\": \"str\"},\n    {\"name\": \"sightings\", \"type\": \"int\"},\n    {\"name\": \"latitude\", \"type\": \"float\"},\n    {\"name\": \"longitude\", \"type\": \"float\"},\n]\ndb.create_table(\"ufo_sightings\", columns)\n\n\ndb.insert(\"ufo_sightings\", {\"name\": \"John Doe\", \"city\": \"New York\", \"sightings\": 2, \"latitude\": 40.7128, \"longitude\": -74.0060})\ndb.insert(\"ufo_sightings\", {\"name\": \"Jane Smith\", \"city\": \"Los Angeles\", \"sightings\": 5, \"latitude\": 34.0522, \"longitude\": -118.2437})\ndb.insert(\"ufo_sightings\", {\"name\": \"Peter Jones\", \"city\": \"London\", \"sightings\": 1, \"latitude\": 51.5074, \"longitude\": 0.1278})\n\ndb.create_index(\"ufo_sightings\", \"city\")\n\n\nall_records = db.select(\"ufo_sightings\")\nprint(\"All Records:\")\nfor record in all_records:\n    print(record)\n\nla_records = db.select(\"ufo_sightings\", where_clause={\"city\": \"Los Angeles\"})\nprint(\"\\nRecords from Los Angeles:\")\nfor record in la_records:\n    print(record)\n\n\n# Corrected select_where usage:\ntable = db.tables[\"ufo_sightings\"]\nla_records_indexed = table.select_where(\"city\", \"Los Angeles\")\nprint(\"\\nRecords from Los Angeles (using index):\")\nfor record in la_records_indexed:\n    print(record)\n\ndb.update(\"ufo_sightings\", 1, {\"sightings\": 10, \"city\": \"San Francisco\"})\ndb.delete(\"ufo_sightings\", 0)\n\n\nprint(\"\\nUpdated Table:\")\ndb.tables[\"ufo_sightings\"].print_table()\n\n\ndb.save_to_file(\"ufo_data.ufo\")\ndb.save_to_file(\"ufo_data.json\", format=\"json\")\ndb.save_to_file(\"ufo_data.csv\", format=\"csv\")\ndb.save_to_file(\"ufo_data.sqlite\", format=\"sqlite\")\n\n\nnew_db = RelativeDB()\nnew_db.load_from_file(\"ufo_data.ufo\")\n\njson_db = RelativeDB()\njson_db.load_from_file(\"ufo_data.json\", format=\"json\")\n\ncsv_db = RelativeDB()\ncsv_db.load_from_file(\"ufo_data.csv\", format=\"csv\")\n\nprint(\"\\nLoaded from UFO file:\")\nnew_db.tables[\"ufo_sightings\"].print_table()\n\n\n\nrecord_to_modify = new_db.select(\"ufo_sightings\", where_clause={\"city\": \"San Francisco\"})[0]\nprint(f\"Original name:{record_to_modify.get_field('name')}\")\nrecord_to_modify.set_field('name',\"Alice\")\nprint(f\"Modified name:{record_to_modify.get_field('name')}\")\n\n\n\n\n# Clean up (optional - comment out if you want to keep the files)\n# os.remove(\"ufo_data.ufo\")\n# os.remove(\"ufo_data.json\")\n# os.remove(\"ufo_data.csv\")\n# os.remove(\"ufo_data.sqlite\")\n```\n\n## Контрибуции\n\nВклады приветствуются! Пожалуйста, создавайте запросы на включение (pull requests) или открывайте issues в репозитории GitHub.\n\n#### Лицензия: \n[MIT License](https://github.com/SL1dee36/pyufo-db/blob/main/LICENSE)\n\n## Благодарности\n\n* [atxxxm](https://github.com/atxxxm) за оригинальный проект [UFO-DB](https://github.com/atxxxm/UFO-DB) на C++.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsl1dee36%2Fpyufo-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsl1dee36%2Fpyufo-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsl1dee36%2Fpyufo-db/lists"}