{"id":26246050,"url":"https://github.com/zillow/ctds","last_synced_at":"2025-04-23T20:26:49.015Z","repository":{"id":53476310,"uuid":"53532906","full_name":"zillow/ctds","owner":"zillow","description":"Python DB-API 2.0 library for MS SQL Server","archived":false,"fork":false,"pushed_at":"2023-06-30T17:17:19.000Z","size":9494,"stargazers_count":84,"open_issues_count":22,"forks_count":12,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-13T19:27:52.969Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/zillow.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","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}},"created_at":"2016-03-09T21:24:04.000Z","updated_at":"2024-12-13T20:59:53.000Z","dependencies_parsed_at":"2023-02-01T23:31:43.801Z","dependency_job_id":"88b136da-255f-444d-b85e-127c86549df8","html_url":"https://github.com/zillow/ctds","commit_stats":{"total_commits":113,"total_committers":8,"mean_commits":14.125,"dds":0.4513274336283186,"last_synced_commit":"182e2c8945b807059fc70c13690ad80e6f094c89"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillow%2Fctds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillow%2Fctds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillow%2Fctds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillow%2Fctds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zillow","download_url":"https://codeload.github.com/zillow/ctds/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250508052,"owners_count":21442151,"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","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":[],"created_at":"2025-03-13T13:17:19.449Z","updated_at":"2025-04-23T20:26:48.992Z","avatar_url":"https://github.com/zillow.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"cTDS\n====\n\n.. include-documentation-begin-marker\n\n.. image:: https://github.com/zillow/ctds/workflows/CI/CD/badge.svg?branch=master\n        :target: https://github.com/zillow/ctds/actions\n\n.. image:: https://ci.appveyor.com/api/projects/status/voa33r7qdnxh6wwp/branch/master?svg=true\n        :target: https://ci.appveyor.com/project/joshuahlang/ctds/branch/master\n\n.. image:: http://img.shields.io/pypi/v/ctds.svg\n        :target: https://pypi.python.org/pypi/ctds/\n\n.. image:: https://codecov.io/gh/zillow/ctds/branch/master/graph/badge.svg\n        :target: https://codecov.io/gh/zillow/ctds\n\n\n`cTDS` is a full Python `DB API-2.0`_-compliant\nSQL Server database library for `Linux`, `Windows`, and `Mac OS X` supporting\nboth Python 2 and Python 3.\n\nThe full documentation for `cTDS` can be found\n`here \u003chttps://zillow.github.io/ctds/\u003e`_.\n\nFeatures\n--------\n\n* Supports `Microsoft SQL Server \u003chttp://www.microsoft.com/sqlserver/\u003e`_ 2008 and up.\n* Complete `DB API-2.0`_ support.\n* Python 2.6, Python 2.7, Python 3.3, Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8, and Python 3.9 support.\n* Bulk insert (bcp) support.\n* Written entirely in C.\n\nDependencies\n------------\n\n* `FreeTDS`_\n* `Python`_\n\n.. _`FreeTDS`: https://www.freetds.org/\n.. _`Python`: https://www.python.org/\n.. _`DB API-2.0`: https://www.python.org/dev/peps/pep-0249\n\n.. include-documentation-end-marker\n\nSee `installation instructions \u003chttps://zillow.github.io/ctds/install.html\u003e`_\nfor more information on installing `FreeTDS`_.\n\nReleasing\n---------\n\nPublishing new versions of the egg and documentation is automated using a\n`Github Actions \u003chttps://docs.github.com/en/actions/\u003e`_ workflow.\nOfficial releases are marked using git\n`tags \u003chttps://git-scm.com/book/en/v2/Git-Basics-Tagging\u003e`_. Pushing the\ntag to the git remote will trigger the automated deployment. E.g.\n\n.. code-block:: console\n\n    git tag -a v1.2.3 -m 'v1.2.3'\n    git push --tags\n\n\nDocumentation\n-------------\n\nGenerate documentation using the following:\n\n.. code-block:: console\n\n    tox -e docs\n    # Generated to build/docs/\n\nDocumentation is hosted on `GitHub Pages \u003chttps://pages.github.com/\u003e`_.\nAs such, the source code for the documentation pages must be committed\nto the `gh-pages \u003chttps://github.com/zillow/ctds/tree/gh-pages\u003e`_ branch in\norder to update the live documentation.\n\n\nDevelopment\n-----------\n\nLocal development and testing is supported on Linux-based systems running\n`tox`_ and `Docker`_. Docker containers are used for running a local instance\nof `SQL Server on Linux`_. Only `Docker`_ and `tox`_ are required for running\ntests locally on Linux or OS X systems. `pyenv`_ is recommended for managing\nmultiple local versions of Python. By default all tests are run against\nthe system version of `FreeTDS`_. `GNU Make`_ targets are provided to make\ncompiling specific `FreeTDS`_ versions locally for testing purposes. For\nexample:\n\n.. code-block:: console\n\n    # Run tests against FreeTDS version 1.1.24\n    make test-1.1.24\n\n\nDevelopment and testing will require an instance of `SQL Server on Linux`_\nrunning for validation. A script, **./scripts/ensure-sqlserver.sh**, is provided\nto start a `Docker`_ container running the database and create the login used\nby the tests.\n\n.. code-block:: console\n\n    # Start a docker-based SQL Server instance.\n    # The default tox targets will do this automatically for you.\n    make start-sqlserver\n\n    # Run tests as needed ...\n\n    # Stop the docker-base SQL Server instance.\n    make stop-sqlserver\n\n\nTesting\n-------\n\nTesting is designed to be relatively seamless using `Docker`_ containers\nand `SQL Server on Linux`_. The `pytest`_ framework is used for running\nthe automated tests.\n\nTo run the tests against the system version of `FreeTDS`_ and `Python`_,\nuse:\n\n.. code-block:: console\n\n    tox\n\n\n`GNU make`_ targets are provided for convenience and to provide a standard\nmethod for building and installing the various versions of `FreeTDS`_ used\nin testing. Most targets are wrappers around `tox`_ or replicate some\nbehavior in the CI/CD automation.\n\nTo run the tests against an arbitrary version of `FreeTDS`_:\n\n.. code-block:: console\n\n    # Python X.Y \u0026 FreeTDS Z.ZZ.ZZ\n    make test_X.Y_Z.ZZ.ZZ\n\n\nTo run tests against all supported versions of `FreeTDS`_ and `Python`_\nand additional linting and metadata checks:\n\n.. code-block:: console\n\n    make check\n\n\nValgrind\n--------\n`valgrind`_ is utilized to ensure memory is managed properly and to detect\ndefects such as memory leaks, buffer overruns, etc. Because `valgrind`_\nrequires Python is compiled with specific flags, a `Docker`_ file is provided\nto `compile Python`_ as necessary to run the test suite under `valgrind`_.\n\nTo run test test suite under `valgrind`_:\n\n.. code-block:: console\n\n    make valgrind\n\n\n.. _`Docker`: https://www.docker.com/\n.. _`compile Python`: https://pythonextensionpatterns.readthedocs.io/en/latest/debugging/valgrind.html\n.. _`SQL Server on Linux`: https://hub.docker.com/r/microsoft/mssql-server-linux/\n.. _`GNU make`: https://www.gnu.org/software/make/\n.. _`pyenv`: https://github.com/pyenv/pyenv\n.. _`pytest`: https://docs.pytest.org/en/stable/\n.. _`tox`: https://tox.readthedocs.io/en/latest/\n.. _`valgrind`: https://valgrind.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzillow%2Fctds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzillow%2Fctds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzillow%2Fctds/lists"}