+{"name": "dynamic-tables", "metadata": {"name": "dynamic-tables", "version": "0.1.1", "classifiers": ["License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3"], "home_page": "https://github.com/scottrodeo/dynamic-tables-python", "license": null, "documentation_url": null, "dependencies": ["psycopg2"], "summary": "A dynamic table creation and management library for PostgreSQL", "upload_time": 1740310390}, "documentation": ["# Dynamic Tables (Python)\nA Python library for dynamically creating and managing PostgreSQL tables based on input data.\n\n## \ud83d\ude80 Features\n- Automatically creates tables based on incoming data.\n- Supports dynamic naming conventions.\n- Provides easy database connectivity with PostgreSQL.\n- Includes helper functions for querying and deleting tables.\n\n---\n\n## \ud83d\udce5 Installation\n### **1\ufe0f\u20e3 Install via GitHub (Recommended for Development)**\nClone the repository and install in editable mode:\n```bash\ngit clone https://github.com/scottrodeo/dynamic-tables-python.git\ncd dynamic-tables-python\npip install -e .\n```\n\n### **2\ufe0f\u20e3 Install Directly via `pip`**\nThe package is available on PyPI, you can install it with:\n```bash\npip install dynamic-tables\n```\n\n---\n\n## \ud83c\udfc3\u200d\u2642\ufe0f Running the Example\n### **1\ufe0f\u20e3 Quick Run (Without Installation)**\nIf you don't want to install the package, you can directly run the example script:\n```bash\npython3 examples/example.py\n```\n\ud83d\udca1 *This works because the script dynamically adjusts `sys.path`.*\n\n### **2\ufe0f\u20e3 Recommended (After Installation)**\nIf you've installed the package (`pip install -e .`), simply run:\n```bash\npython3 examples/example.py\n```\n\n---\n\n## \ud83d\udccc Example Usage\nOnce installed, you can use `dynamic_tables` in your Python scripts:\n\n```python\nfrom dynamic_tables import DynamicTables\n\n# Initialize the dynamic table manager\ntables = DynamicTables()\n\n# Example: Creating and inserting data dynamically\ntables.set_table_prefix(\"dtbl_\")\ntables.set_columns(\"domain TEXT, category TEXT, lang TEXT\")\ntables.set_dynamic_column(\"domain\")\n\ntables.input(\"wikipedia.org\", \"cats\", \"en\")\ntables.input(\"wikipedia.org\", \"dogs\", \"en\")\n\n# Show all tables\ntables.show_tables()\n```\n\n---\n\n## \ud83d\udee0\ufe0f Available Functions\n| Function | Description |\n|----------|-------------|\n| `set_columns(\"name TYPE, age TYPE\")` | Define table schema |\n| `set_table_prefix(\"prefix_\")` | Set a custom table prefix |\n| `set_dynamic_column(\"column_name\")` | Set the column that determines dynamic table names |\n| `input(value1, value2, ...)` | Insert a new row dynamically |\n| `show_tables()` | List all dynamically created tables |\n| `show_columns(\"table_name\")` | Show column details for a specific table |\n| `select_table(\"table_name\")` | Retrieve all rows from a table |\n| `delete_tables()` | Drop all tables matching the prefix |\n\n---\n\n## \u26a1 Development\n### **Running Tests**\nTo run the test suite:\n```bash\npytest tests/\n```\n\n### **Linting**\nEnsure your code follows best practices:\n```bash\nflake8 dynamic_tables/\n```\n\n---\n\n## \ud83e\udd1d Contributing\nContributions are welcome! If you'd like to improve `dynamic_tables`, follow these steps:\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature-branch`).\n3. Commit your changes (`git commit -m \"Added new feature\"`).\n4. Push to the branch (`git push origin feature-branch`).\n5. Open a pull request.\n\n---\n\n## \ud83d\udcc4 License\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.\n\n---\n\n## \ud83c\udf0e Links\n- **GitHub Repository:** [Dynamic Tables (Python)](https://github.com/scottrodeo/dynamic-tables-python)\n- **Documentation:** *(To be added)*\n- **Issue Tracker:** [Report Issues](https://github.com/scottrodeo/dynamic-tables-python/issues)\n\n---\n\n### **\ud83d\ude80 Happy Coding!**\n\n\n\n"], "modules": [{"name": "dynamic_tables", "documentation": ["__init__.py"], "functions": [], "variables": [], "classes": [], "exports": [{"name": "dynamic_tables.DynamicTables", "xref": {"fqname": "dynamic_tables.dynamic_tables.DynamicTables", "project": null}}]}, {"name": "dynamic_tables.dynamic_tables", "documentation": ["this is dynamic_tables.py"], "functions": [], "variables": [], "classes": [{"name": "dynamic_tables.dynamic_tables.DynamicTables", "bases": [], "methods": [{"name": "dynamic_tables.dynamic_tables.DynamicTables.__init__", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Initialize the class by calling self.initialize() to set up default values."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.initialize", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Sets up default attributes for the table structure."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.connection_open", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "dbname", "type": null, "default": null}, {"name": "user", "type": null, "default": null}, {"name": "password", "type": null, "default": null}, {"name": "host", "type": null, "default": null}], "returns": null, "documentation": ["Opens a connection to the PostgreSQL database and initializes the cursor."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.connectHC", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "dbname", "type": null, "default": null}, {"name": "user", "type": null, "default": null}, {"name": "password", "type": null, "default": null}, {"name": "host", "type": null, "default": null}], "returns": null, "documentation": ["Helper function to open a connection using hardcoded credentials."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.connectJSON", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Opens a database connection using credentials from a JSON config file."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.connectENVS", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Opens a database connection using environment variables."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.connection_close", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Closes the database cursor and connection."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.close", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Alias for connection_close() to improve readability."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.format_table_name", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "input_column", "type": null, "default": null}], "returns": null, "documentation": ["Formats an input column name to create a valid table name."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.input", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "*args", "type": null, "default": null}], "returns": null, "documentation": ["Handles data insertion by dynamically determining the table name and inserting values."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.insert_data", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "table_name", "type": null, "default": null}, {"name": "data_dict", "type": null, "default": null}], "returns": null, "documentation": ["Inserts data into a dynamically created table."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.create_table", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "table_name", "type": null, "default": null}, {"name": "columns", "type": null, "default": null}], "returns": null, "documentation": ["Creates a table dynamically if it does not already exist."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.show_db", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Lists all available databases."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.show_tables", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Fetch and return a list of all table names."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.show_columns", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "table_name", "type": null, "default": null}], "returns": null, "documentation": ["Displays all columns and their data types for a given table."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.show_columns_all", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Lists column details for all tables."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.select_table", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "table_name", "type": null, "default": null}], "returns": null, "documentation": ["Retrieves and prints all rows from the specified table."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.delete_tables", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Deletes all tables that match the current table prefix."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.set_columns", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "input_columns", "type": null, "default": null}], "returns": null, "documentation": ["Sets the columns for table creation based on user input."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.set_table_prefix", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "input_prefix", "type": null, "default": null}], "returns": null, "documentation": ["Defines a custom table name prefix."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.set_dynamic_column", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}, {"name": "input_column", "type": null, "default": null}], "returns": null, "documentation": ["Sets the column that determines dynamic table names."]}, {"name": "dynamic_tables.dynamic_tables.DynamicTables.status", "asynchronous": false, "params": [{"name": "self", "type": null, "default": null}], "returns": null, "documentation": ["Displays the currently configured column settings."]}], "class_variables": [], "instance_variables": [], "inner_classes": [], "documentation": []}], "exports": []}]}
0 commit comments