Skip to content

Commit

Permalink
feat: pythonic style (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
KatantDev authored Jan 29, 2024
1 parent b2d7d8b commit a5c4328
Show file tree
Hide file tree
Showing 19 changed files with 1,134 additions and 810 deletions.
19 changes: 19 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
root = true

[**]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 99

[**.{yml,yaml,json}]
indent_size = 2

[**.{md,txt,rst}]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
53 changes: 31 additions & 22 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,48 @@
name: Python Tests

on: [push, pull_request]
on: [ push, pull_request ]

jobs:
build:
runs-on: ubuntu-latest

# Prevent duplicate builds on internal PRs.
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository

strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
os:
- ubuntu-latest
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Setup docker
if: matrix.os == 'macos-latest'
uses: crazy-max/ghaction-setup-docker@v3

- name: Start Centrifugo
run: docker run -d -p 8000:8000 centrifugo/centrifugo:v5 centrifugo --client_insecure
- name: Start Centrifugo
run: docker run -d -p 8000:8000 centrifugo/centrifugo:v5 centrifugo --client_insecure

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Install dependencies
run: |
pip install -e .[dev]
- name: Run tests
run: |
python -m unittest discover -s tests
- name: Run tests
run: |
python -m unittest discover -s tests
- name: Run linter
run: |
pip install flake8
flake8 centrifuge --max-line-length 120 --exclude centrifuge/protocol/client_pb2.py
- name: Run linter
run: |
ruff . --output-format=github
20 changes: 20 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
hooks:
- id: "trailing-whitespace"
- id: "check-case-conflict"
- id: "check-merge-conflict"
- id: "debug-statements"
- id: "end-of-file-fixer"
- id: "mixed-line-ending"
- id: "detect-private-key"
- id: "check-yaml"
- id: "check-toml"

- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: 'v0.1.14'
hooks:
- id: ruff
args: [ "--fix" ]
- id: ruff-format
115 changes: 84 additions & 31 deletions centrifuge/__init__.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,87 @@
from .client import Client, Subscription, ClientState, SubscriptionState
from .exceptions import CentrifugeException, Timeout, ClientDisconnected, \
SubscriptionUnsubscribed, DuplicateSubscription, ReplyError, Unauthorized
from .contexts import SubscriptionTokenContext, ConnectionTokenContext, \
SubscribingContext, SubscribedContext, UnsubscribedContext, \
PublicationContext, JoinContext, LeaveContext, \
ErrorContext, DisconnectedContext, ConnectedContext, ConnectingContext, \
ServerSubscribedContext, ServerSubscribingContext, ServerUnsubscribedContext, \
ServerPublicationContext, ServerJoinContext, ServerLeaveContext, \
SubscriptionErrorContext
from .types import JSON, BytesOrJSON, StreamPosition, ClientInfo, Publication, PublishResult, \
HistoryResult, PresenceResult, PresenceStatsResult, RpcResult


__version__ = "0.3.0b0"


__all__ = [
Client, Subscription, ClientState, SubscriptionState,

CentrifugeException, Timeout, ClientDisconnected, SubscriptionUnsubscribed,
DuplicateSubscription, ReplyError, Unauthorized,

SubscriptionTokenContext, ConnectionTokenContext,
SubscribingContext, SubscribedContext, UnsubscribedContext,
PublicationContext, JoinContext, LeaveContext,
ErrorContext, DisconnectedContext, ConnectedContext, ConnectingContext,
ServerSubscribedContext, ServerSubscribingContext, ServerUnsubscribedContext,
ServerPublicationContext, ServerJoinContext, ServerLeaveContext,
"""Main module of a Centrifuge Python client library."""
from .client import Client, ClientState, Subscription, SubscriptionState
from .contexts import (
ConnectedContext,
ConnectingContext,
ConnectionTokenContext,
DisconnectedContext,
ErrorContext,
JoinContext,
LeaveContext,
PublicationContext,
ServerJoinContext,
ServerLeaveContext,
ServerPublicationContext,
ServerSubscribedContext,
ServerSubscribingContext,
ServerUnsubscribedContext,
SubscribedContext,
SubscribingContext,
SubscriptionErrorContext,
SubscriptionTokenContext,
UnsubscribedContext,
)
from .exceptions import (
CentrifugeError,
ClientDisconnectedError,
OperationTimeoutError,
DuplicateSubscriptionError,
ReplyError,
SubscriptionUnsubscribedError,
UnauthorizedError,
)
from .types import (
JSON,
BytesOrJSON,
ClientInfo,
HistoryResult,
PresenceResult,
PresenceStatsResult,
Publication,
PublishResult,
RpcResult,
StreamPosition,
)

JSON, BytesOrJSON, StreamPosition, ClientInfo, Publication, PublishResult,
HistoryResult, PresenceResult, PresenceStatsResult, RpcResult
__all__ = [
"Client",
"Subscription",
"ClientState",
"SubscriptionState",
"CentrifugeError",
"OperationTimeoutError",
"ClientDisconnectedError",
"SubscriptionUnsubscribedError",
"DuplicateSubscriptionError",
"ReplyError",
"UnauthorizedError",
"SubscriptionTokenContext",
"ConnectionTokenContext",
"SubscribingContext",
"SubscribedContext",
"UnsubscribedContext",
"PublicationContext",
"JoinContext",
"LeaveContext",
"ErrorContext",
"DisconnectedContext",
"ConnectedContext",
"ConnectingContext",
"ServerSubscribedContext",
"ServerSubscribingContext",
"ServerUnsubscribedContext",
"ServerPublicationContext",
"ServerJoinContext",
"ServerLeaveContext",
"SubscriptionErrorContext",
"JSON",
"BytesOrJSON",
"StreamPosition",
"ClientInfo",
"Publication",
"PublishResult",
"HistoryResult",
"PresenceResult",
"PresenceStatsResult",
"RpcResult",
]
1 change: 1 addition & 0 deletions centrifuge/__meta__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__version__ = "0.3.0b0"
Loading

0 comments on commit a5c4328

Please sign in to comment.