Skip to main content

An asynchronous Python client for interacting with the X API.

Project description

Xify

PyPI PyPI - Python Version License

Xify is a Python client for interacting with the X (formerly Twitter) API. This library provides an asynchronous interface to perform common tasks like creating tweets as well as providing authentication and custom error handling.


Features

  • Send Tweets: Contains functionality to send tweets.
  • OAuth 1.0a Authentication: Sign and authenticate requests to the X API.
  • Async HTTP Requests: Uses aiohttp for efficient, non-blocking network operations.
  • Developer Experience: Includes ruff, mypy, pre-commit, and commitizen for high-quality code.

Installation

From PyPI (Recommended)

pip install xify

From Source

You can install Xify by cloning the repository directly or using pre-built wheel files.

Prerequisites: This project requires uv for dependency management.

Option 1: Clone and Build

  1. Clone the repository:

    git clone https://github.com/filming/xify.git
    cd xify
    
  2. Install the project and its dependencies:

    uv sync
    

Option 2: Install from Pre-built Wheels

Pre-built wheel files are attached to each GitHub release. You can download and install them directly:

  1. Go to the GitHub releases page
  2. Download the .whl file from the latest release
  3. Install using pip:
    pip install path/to/downloaded/xify-*.whl
    

Usage

Here's a basic example of how to use Xify to send out a tweet:

import asyncio
from xify import Xify

async def main():
   x_consumer_key = "1111111111"
   x_consumer_secret = "2222222222"
   x_access_token = "3333333333"
   x_access_token_secret = "4444444444"

   async with Xify(
      x_consumer_key=x_consumer_key,
      x_consumer_secret=x_consumer_secret,
      x_access_token=x_access_token,
      x_access_token_secret=x_access_token_secret,
    ) as client:
      response = await client.tweet({"msg": "hello!"})

if __name__ == "__main__":
   asyncio.run(main())

Development

This project uses modern Python development tools:

Setting up for development:

  1. Clone the repository:

    git clone https://github.com/filming/xify.git
    cd xify
    
  2. Install dependencies (including dev tools):

    uv sync --extra dev
    
  3. Set up pre-commit hooks:

    uv run pre-commit install
    
  4. Start developing!


Dependencies

All project dependencies are managed via pyproject.toml and use Python 3.10+.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Contributing

Contributions, bug reports, and feature requests are welcome! Please open an issue or submit a pull request on GitHub.

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

xify-2.2.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xify-2.2.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file xify-2.2.0.tar.gz.

File metadata

  • Download URL: xify-2.2.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xify-2.2.0.tar.gz
Algorithm Hash digest
SHA256 e0f52cce27debdc8136414e879ed1460fc610cb0c24bfe637ab9a9ae54afb2ca
MD5 beb823a31f077204b318f05ca688554a
BLAKE2b-256 02ba07e561fbafbc7a6ab017f05b593008a466518256918ebb436a0c6c726cae

See more details on using hashes here.

Provenance

The following attestation bundles were made for xify-2.2.0.tar.gz:

Publisher: release.yml on filming/xify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xify-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: xify-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xify-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39ba39055f1654bc51ad5064b5449ee3bc397fedba9def1130a556b2d977ebf0
MD5 c5a908925b9de7f91da344e2440c757f
BLAKE2b-256 0d449513aa8433ba0510ab676d6021f2971b0dabc64b9aa968164bc4019bbe4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xify-2.2.0-py3-none-any.whl:

Publisher: release.yml on filming/xify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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