From b8a5dbef906c39fc59a9fd13741bb352fc12561c Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 2 Sep 2020 08:39:23 +0200 Subject: [PATCH] Merge/tvsw (#33) * Edit docs coverage badge * Add tests with branch coverage * Update readme * Add lint with flake8 * Fix bug where the exception sent as a message was not the one originally thrown * Add support for Imgur gallery images * Add mypy type checking * Add DbC * Add dev dependencies * Add github pages workflow * Add git-crypt to lint * Add pyreverse * Update failing test due to API error * Add icontract linting --- .codeclimate.yml | 16 +- .github/workflows/docs.yml | 39 +- .github/workflows/github-pages.yml | 52 + .github/workflows/lint.yml | 21 +- .github/workflows/requirements/docs.txt | 3 - .github/workflows/requirements/lint.txt | 2 - .github/workflows/requirements/test.txt | 2 - .github/workflows/test.yml | 14 +- .gitignore | 56 +- README.md | 8 + docs/images/classes_telereddit.png | Bin 0 -> 208747 bytes docs/images/dependency-graph.svg | 931 ------------------ docs/images/packages_telereddit.png | Bin 0 -> 195411 bytes docs/telereddit/exceptions.html | 30 +- docs/telereddit/helpers.html | 18 +- docs/telereddit/index.html | 8 + docs/telereddit/linker.html | 72 +- docs/telereddit/models/media.html | 2 +- docs/telereddit/models/post.html | 6 +- docs/telereddit/reddit.html | 2 +- docs/telereddit/services/generic_service.html | 24 +- docs/telereddit/services/gfycat_service.html | 18 +- docs/telereddit/services/imgur_service.html | 24 +- docs/telereddit/services/service.html | 22 +- .../telereddit/services/services_wrapper.html | 14 +- docs/telereddit/services/vreddit_service.html | 24 +- docs/telereddit/services/youtube_service.html | 18 +- docs/telereddit/telereddit.html | 6 +- docs/telereddit/tests/test_helpers.html | 26 +- docs/telereddit/tests/test_linker.html | 192 ++++ docs/telereddit/tests/test_reddit.html | 7 + docs/telereddit/tests/test_services.html | 7 + requirements/dev.txt | 4 + requirements/docs.txt | 4 + requirements/lint.txt | 6 + .../requirements.txt | Bin 220 -> 208 bytes requirements/test.txt | 3 + setup.cfg | 13 +- telereddit/__main__.py | 6 +- telereddit/config/config.py | 11 +- telereddit/exceptions.py | 43 +- telereddit/helpers.py | 93 +- telereddit/linker.py | 81 +- telereddit/models/content_type.py | 2 +- telereddit/models/media.py | 5 +- telereddit/models/post.py | 17 +- telereddit/reddit.py | 30 +- telereddit/services/generic_service.py | 8 +- telereddit/services/gfycat_service.py | 41 +- telereddit/services/imgur_service.py | 18 +- telereddit/services/service.py | 52 +- telereddit/services/services_wrapper.py | 40 +- telereddit/services/vreddit_service.py | 16 +- telereddit/services/youtube_service.py | 18 +- telereddit/telereddit.py | 40 +- telereddit/tests/test_helpers.py | 15 +- telereddit/tests/test_linker.py | 171 +++- telereddit/tests/test_reddit.py | 14 + telereddit/tests/test_services.py | 9 + 59 files changed, 1081 insertions(+), 1343 deletions(-) create mode 100644 .github/workflows/github-pages.yml delete mode 100644 .github/workflows/requirements/docs.txt delete mode 100644 .github/workflows/requirements/lint.txt delete mode 100644 .github/workflows/requirements/test.txt create mode 100644 docs/images/classes_telereddit.png delete mode 100644 docs/images/dependency-graph.svg create mode 100644 docs/images/packages_telereddit.png create mode 100644 requirements/dev.txt create mode 100644 requirements/docs.txt create mode 100644 requirements/lint.txt rename requirements.txt => requirements/requirements.txt (53%) create mode 100644 requirements/test.txt diff --git a/.codeclimate.yml b/.codeclimate.yml index 1c45168..78bf5f2 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -2,10 +2,10 @@ version: "2" checks: argument-count: config: - threshold: 5 + threshold: 7 method-complexity: config: - threshold: 7 + threshold: 15 plugins: duplication: enabled: true @@ -20,17 +20,5 @@ plugins: config: threshold: "C" exclude_patterns: - - "config/" - - "db/" - - "dist/" - - "features/" - - "**/node_modules/" - - "script/" - - "**/spec/" - - "**/test/" - "**/tests/" - - "Tests/" - - "**/vendor/" - - "**/*_test.go" - - "**/*.d.ts" - "**/secret_*.py" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 58d5191..548b518 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,22 +26,15 @@ jobs: uses: actions/cache@v1 with: path: ~/.cache/pip # This path is specific to Ubuntu - key: ${{ runner.os }}-pip-${{ hashFiles('./requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Cache CI dependencies - uses: actions/cache@v1 - with: - path: ~/.cache/pip # This path is specific to Ubuntu - key: ${{ runner.os }}-pip-${{ hashFiles('./.github/workflows/requirements/docs.txt') }} + key: ${{ runner.os }}-pip-${{ hashFiles('./requirements/requirements.txt') }}-${{ hashFiles('**/docs.txt') }}-${{ hashFiles('**/test.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: | - pip install -r requirements.txt - pip install -r ./.github/workflows/requirements/docs.txt + pip install -r ./requirements/requirements.txt + pip install -r ./requirements/docs.txt + pip install -r ./requirements/test.txt - name: Unlock git-crypt files uses: zemuldo/git-crypt-unlock@v3.0-alpha-1 @@ -50,6 +43,12 @@ jobs: GPG_KEY_GRIP: ${{ secrets.GPG_KEY_GRIP }} GPG_KEY_PASS: ${{ secrets.GPG_KEY_PASS }} + - name: Generate project dependency graphs + run: | + pyreverse --ignore="tests" -o png -p telereddit telereddit + mv classes_telereddit.png docs/images/classes_telereddit.png + mv packages_telereddit.png docs/images/packages_telereddit.png + - name: Generate documentation run: | rm -rf docs/telereddit @@ -57,28 +56,24 @@ jobs: env: TELEREDDIT_MACHINE: GITHUB - - name: Run documentation coverage + - name: Run docstr coverage run: | mkdir documentation-reports - docstr-coverage telereddit --percentage-only --exclude=tests --skipinit 2>&1 | tee ./documentation-reports/docstr-coverage.txt + docstr-coverage telereddit --verbose=3 --exclude=tests --skipinit 2>&1 | tee ./documentation-reports/docstr-coverage.txt + + - name: Run pydocstyle + run: | (pydocstyle telereddit 2>&1 | tee ./documentation-reports/pydocstyle-coverage.txt; exit ${PIPESTATUS[0]}) - name: Upload documentation reports as artifact uses: actions/upload-artifact@v2 with: name: documentation-reports - path: ./documentation-reports/ + path: ./documentation-reports/docstr-coverage.txt - name: Commit changes uses: EndBug/add-and-commit@v4 with: message: "Commit from Github Actions: docs workflow changes" env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Deploy docs to Gtihub Pages - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} - BRANCH: gh-pages - FOLDER: docs/telereddit + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml new file mode 100644 index 0000000..0b52963 --- /dev/null +++ b/.github/workflows/github-pages.yml @@ -0,0 +1,52 @@ +name: github-pages + +on: + push: + branches: + - master + +jobs: + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Set up Python 3.8 + uses: actions/setup-python@v1 + with: + python-version: 3.8 + + - name: Cache dependencies + uses: actions/cache@v1 + with: + path: ~/.cache/pip # This path is specific to Ubuntu + key: ${{ runner.os }}-pip-${{ hashFiles('./requirements/requirements.txt') }}-${{ hashFiles('**/docs.txt') }}-${{ hashFiles('**/test.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install dependencies + run: | + pip install -r ./requirements/requirements.txt + pip install -r ./requirements/docs.txt + pip install -r ./requirements/test.txt + + - name: Unlock git-crypt files + uses: zemuldo/git-crypt-unlock@v3.0-alpha-1 + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_KEY_GRIP: ${{ secrets.GPG_KEY_GRIP }} + GPG_KEY_PASS: ${{ secrets.GPG_KEY_PASS }} + + - name: Generate documentation + run: | + rm -rf docs/telereddit + pdoc --html --output-dir="docs/" --template-dir="docs/templates" --config show_source_code=False --force . + env: + TELEREDDIT_MACHINE: GITHUB + + - name: Deploy docs to Github Pages + uses: JamesIves/github-pages-deploy-action@releases/v3 + with: + ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} + BRANCH: gh-pages + FOLDER: docs/telereddit diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8a1485b..09c1d4d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,20 +18,33 @@ jobs: with: python-version: 3.8 - - name: Cache CI dependencies + - name: Cache dependencies uses: actions/cache@v1 with: path: ~/.cache/pip # This path is specific to Ubuntu - key: ${{ runner.os }}-pip-${{ hashFiles('./.github/workflows/requirements/lint.txt') }} + key: ${{ runner.os }}-pip-${{ hashFiles('./requirements/lint.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: | - pip install -r ./.github/workflows/requirements/lint.txt + pip install -r ./requirements/lint.txt + + - name: Unlock git-crypt files + uses: zemuldo/git-crypt-unlock@v3.0-alpha-1 + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_KEY_GRIP: ${{ secrets.GPG_KEY_GRIP }} + GPG_KEY_PASS: ${{ secrets.GPG_KEY_PASS }} - name: Check black code formatting run: python -m black telereddit --check - name: Check flake8 linting - run: python -m flake8 --config setup.cfg telereddit \ No newline at end of file + run: python -m flake8 --config setup.cfg telereddit + + - name: Check mypy linting + run: mypy telereddit + + - name: Check icontract linting + run: pyicontract-lint --format verbose telereddit diff --git a/.github/workflows/requirements/docs.txt b/.github/workflows/requirements/docs.txt deleted file mode 100644 index 97350b1..0000000 --- a/.github/workflows/requirements/docs.txt +++ /dev/null @@ -1,3 +0,0 @@ -pdoc3>=0.8.1 -pydocstyle>=5.0.2 -docstr-coverage>=1.0.5 \ No newline at end of file diff --git a/.github/workflows/requirements/lint.txt b/.github/workflows/requirements/lint.txt deleted file mode 100644 index 7e6fb2c..0000000 --- a/.github/workflows/requirements/lint.txt +++ /dev/null @@ -1,2 +0,0 @@ -black>=19.10b0 -flake8>=3.7.9 \ No newline at end of file diff --git a/.github/workflows/requirements/test.txt b/.github/workflows/requirements/test.txt deleted file mode 100644 index e4d3546..0000000 --- a/.github/workflows/requirements/test.txt +++ /dev/null @@ -1,2 +0,0 @@ -coverage>=5.0.4 -coveralls>=2.0.0 \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 127a512..8c2497b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,22 +33,14 @@ jobs: uses: actions/cache@v1 with: path: ~/.cache/pip # This path is specific to Ubuntu - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Cache CI dependencies - uses: actions/cache@v1 - with: - path: ~/.cache/pip # This path is specific to Ubuntu - key: ${{ runner.os }}-pip-${{ hashFiles('./.github/workflows/requirements/test.txt') }} + key: ${{ runner.os }}-pip-${{ hashFiles('./requirements/requirements.txt') }}-${{ hashFiles('**/test.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: | - pip install -r requirements.txt - pip install -r ./.github/workflows/requirements/test.txt + pip install -r ./requirements/requirements.txt + pip install -r ./requirements/test.txt - name: Run tests and generate report run: | diff --git a/.gitignore b/.gitignore index 71a7f1d..20423f6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,6 @@ __pycache__/ *.py[cod] *$py.class -# C extensions -*.so - # Distribution / packaging .Python build/ @@ -25,16 +22,6 @@ wheels/ *.egg MANIFEST -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - # Unit test / coverage reports htmlcov/ .tox/ @@ -47,40 +34,6 @@ coverage.xml .hypothesis/ .pytest_cache/ -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# pyenv -.python-version - -# celery beat schedule file -celerybeat-schedule - -# SageMath parsed files -*.sage.py - # Environments .env .venv @@ -103,10 +56,17 @@ venv.bak/ # mypy .mypy_cache/ +.mypy +# IDE .vscode .idea +# Python __pycache__ -documentation-reports \ No newline at end of file +documentation-reports + +html +.mutmut-cache +.metadata diff --git a/README.md b/README.md index e6ce9a7..2392eca 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,14 @@ Get it on [telegram.me](https://telegram.me/tele_reddit_bot)! ## Bugs and feature requests If you want to report a bug or would like a feature to be added, feel free to open an issue. + + +## Versioning +We follow Semantic Versioning. The version X.Y.Z indicates: + +* X is the major version (backward-incompatible), +* Y is the minor version (backward-compatible), and +* Z is the patch version (backward-compatible bug fix). ## License **[GPL v3](https://www.gnu.org/licenses/gpl-3.0)** - Copyright 2020 © 28CNmXZ#~mQYENlx`5D1yoc@KtMoB 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

Classes

class TeleredditError -(msg, data=None, capture=False) +(msg: Any, data: Any = None, capture: bool = False)

Base class for all catched exceptions.

@@ -75,7 +75,7 @@

Subclasses

class AuthenticationError -(data=None, capture=True) +(data: Any = None, capture: bool = True)

Raised when a service cannot authenticate to the API provider.

@@ -88,7 +88,7 @@

Ancestors

class SubredditError -(msg, data=None, capture=False) +(msg: Any, data: Any = None, capture: bool = False)

Base class for subreddit related exceptions.

@@ -110,7 +110,7 @@

Subclasses

class PostError -(msg, data=None, capture=True) +(msg: Any, data: Any = None, capture: bool = True)

Base class for post related exceptions.

@@ -133,7 +133,7 @@

Subclasses

class MediaError -(msg, data=None, capture=True) +(msg: Any, data: Any = None, capture: bool = True)

Base class for media related exceptions.

@@ -155,7 +155,7 @@

Subclasses

class SubredditPrivateError -(data=None, capture=False) +(data: Any = None, capture: bool = False)

Raised when the subreddit is private, and therefore cannot be fetched.

@@ -169,7 +169,7 @@

Ancestors

class SubredditDoesntExistError -(data=None, capture=False) +(data: Any = None, capture: bool = False)

Raised when the subreddit does not exist.

@@ -183,7 +183,7 @@

Ancestors

class PostRequestError -(data=None, capture=True) +(data: Any = None, capture: bool = True)

Raised when there's an error in the post request.

@@ -200,7 +200,7 @@

Ancestors

class PostRetrievalError -(data=None, capture=True) +(data: Any = None, capture: bool = True)

Raised when there's an error in the post json.

@@ -216,7 +216,7 @@

Ancestors

class PostSendError -(data=None, capture=True) +(data: Any = None, capture: bool = True)

Raised when there's an error in sending the post to the Telegram chat.

@@ -232,14 +232,14 @@

Ancestors

class PostEqualsMessageError -(data=None, capture=False) +(data: Any = None, capture: bool = False)

Raised when the post in the Telegram message is the same as the retrieved.

Capture

This error is useful when editing a Telegram message with a different post. -It is thus raised as a correct program flow, and therefore it should not be -captured from Sentry.

+It is thus raised as a correct program flow, and therefore it should not +be captured from Sentry.

Ancestors

class MediaTooBigError -(data=None, capture=True) +(data: Any = None, capture: bool = True)

Raised when post media exceeds the max media size allowed by Telegram APIs.

@@ -269,7 +269,7 @@

Ancestors

class MediaRetrievalError -(data=None, capture=True) +(data: Any = None, capture: bool = True)

Raised when there's an error in the media retrieval request.

diff --git a/docs/telereddit/helpers.html b/docs/telereddit/helpers.html index 75fcdab..4c25c29 100644 --- a/docs/telereddit/helpers.html +++ b/docs/telereddit/helpers.html @@ -32,7 +32,7 @@

Module telereddit.helpers

Functions

-def get_random_post_url(subreddit) +def get_random_post_url(subreddit: str) ‑> str

Return the "random post" url relative to the Reddit API.

@@ -48,7 +48,7 @@

Returns

-def get_subreddit_names(text) +def get_subreddit_names(text: str) ‑> List[str]

Return a list of the ("r/" prefixed) subreddit names present in the text.

@@ -70,7 +70,7 @@

Returns

-def get_subreddit_name(text, reverse=False) +def get_subreddit_name(text: str, reverse: bool = False) ‑> Union[str, NoneType]

Return the first (or last) ("r/" prefixed) subreddit name in the given text.

@@ -91,7 +91,7 @@

Returns

-def escape_markdown(text) +def escape_markdown(text: str) ‑> str

Return the given text with escaped common markdown characters.

@@ -112,7 +112,7 @@

Returns

-def truncate_text(text, length=200) +def truncate_text(text: str, length: int = 200) ‑> str

Return the given text, truncated at length characters, plus ellipsis.

@@ -134,7 +134,7 @@

Returns

-def polish_text(text) +def polish_text(text: str) ‑> str

Return the given text without newline characters.

@@ -150,7 +150,7 @@

Returns

-def get_urls_from_text(text) +def get_urls_from_text(text: str) ‑> List[str]

Return a list of the reddit urls present in the given text.

@@ -166,7 +166,7 @@

Returns

-def get(obj, attr, default=None) +def get(obj: Any, attr: str, default: Any = None) ‑> Any

Return the value of attr if it exists and is not None, default otherwise.

@@ -192,7 +192,7 @@

Returns

-def chained_get(obj, attrs, default=None) +def chained_get(obj: object, attrs: List[str], default: Any = None) ‑> Any

Get for nested objects.

diff --git a/docs/telereddit/index.html b/docs/telereddit/index.html index 762445c..2839f75 100644 --- a/docs/telereddit/index.html +++ b/docs/telereddit/index.html @@ -71,6 +71,13 @@

Installation

Bugs and feature requests

If you want to report a bug or would like a feature to be added, feel free to open an issue.

+

Versioning

+

We follow Semantic Versioning. The version X.Y.Z indicates:

+
    +
  • X is the major version (backward-incompatible),
  • +
  • Y is the minor version (backward-compatible), and
  • +
  • Z is the patch version (backward-compatible bug fix).
  • +

License

GPL v3 - Copyright 2020 © fabio.sangregorio.dev.

@@ -137,6 +144,7 @@

Index

  • Installation
  • Bugs and feature requests
  • +
  • Versioning
  • License
  • diff --git a/docs/telereddit/linker.html b/docs/telereddit/linker.html index 93cd254..0fc9954 100644 --- a/docs/telereddit/linker.html +++ b/docs/telereddit/linker.html @@ -35,7 +35,7 @@

    Classes

    class Linker -(chat_id) +(chat_id: int)

    Handle a single telereddit request.

    @@ -52,15 +52,67 @@

    Attributes

    Class variables

    -
    var bot
    +
    var bot : telegram.bot.Bot
    -
    +

    Create a new Mock object. Mock takes several optional arguments +that specify the behaviour of the Mock object:

    +
      +
    • spec: This can be either a list of strings or an existing object (a +class or instance) that acts as the specification for the mock object. If +you pass in an object then a list of strings is formed by calling dir on +the object (excluding unsupported magic attributes and methods). Accessing +any attribute not in this list will raise an AttributeError.
    • +
    +

    If spec is an object (rather than a list of strings) then +mock.__class__ returns the class of the spec object. This allows mocks +to pass isinstance tests.

    +
      +
    • +

      spec_set: A stricter variant of spec. If used, attempting to set +or get an attribute on the mock that isn't on the object passed as +spec_set will raise an AttributeError.

      +
    • +
    • +

      side_effect: A function to be called whenever the Mock is called. See +the side_effect attribute. Useful for raising exceptions or +dynamically changing return values. The function is called with the same +arguments as the mock, and unless it returns DEFAULT, the return +value of this function is used as the return value.

      +
    • +
    +

    If side_effect is an iterable then each call to the mock will return +the next value from the iterable. If any of the members of the iterable +are exceptions they will be raised instead of returned.

    +
      +
    • +

      return_value: The value returned when the mock is called. By default +this is a new Mock (created on first access). See the +return_value attribute.

      +
    • +
    • +

      wraps: Item for the mock object to wrap. If wraps is not None then +calling the Mock will pass the call through to the wrapped object +(returning the real result). Attribute access on the mock will return a +Mock object that wraps the corresponding attribute of the wrapped object +(so attempting to access an attribute that doesn't exist will raise an +AttributeError).

      +
    • +
    +

    If the mock has an explicit return_value set then calls are not passed +to the wrapped object and the return_value is returned instead.

    +
      +
    • name: If the mock has a name then it will be used in the repr of the +mock. This can be useful for debugging. The name is propagated to child +mocks.
    • +
    +

    Mocks can also be called with arbitrary keyword arguments. These will be +used to set attributes on the mock after it is created.

    Static methods

    -def set_bot(bot) +def set_bot(bot: telegram.bot.Bot) ‑> NoneType

    Set the python-telegram-bot's Bot instance for the Linker object.

    @@ -78,7 +130,7 @@

    Parameters

    Methods

    -def get_args(self, override_dict={}) +def get_args(self, override_dict: Union[dict, NoneType] = None) ‑> dict

    Get the args parameters potentially overriding some of them.

    @@ -95,7 +147,7 @@

    Returns

    args

    -def send_random_post(self, subreddit) +def send_random_post(self, subreddit: str) ‑> NoneType

    Send a random post to the chat from the given subreddit.

    @@ -112,7 +164,7 @@

    Parameters

    -def send_post_from_url(self, post_url) +def send_post_from_url(self, post_url: str) ‑> NoneType

    Try to send the reddit post relative to post_url to the chat.

    @@ -124,7 +176,7 @@

    Parameters

    -def send_post(self, post_url, from_url=False) +def send_post(self, post_url: str, from_url: bool = False) ‑> NoneType

    Send the reddit post relative to post_url to the chat.

    @@ -142,7 +194,7 @@

    Parameters

    -def edit_result(self, message) +def edit_result(self, message: telegram.message.Message) ‑> NoneType

    Edit the given message with a new post from that subreddit.

    @@ -155,7 +207,7 @@

    Parameters

    -def edit_random_post(self, message, subreddit) +def edit_random_post(self, message: telegram.message.Message, subreddit: str) ‑> NoneType

    Edit the current Telegram message with another random Reddit post.

    diff --git a/docs/telereddit/models/media.html b/docs/telereddit/models/media.html index d19b421..2af59f4 100644 --- a/docs/telereddit/models/media.html +++ b/docs/telereddit/models/media.html @@ -35,7 +35,7 @@

    Classes

    class Media -(url, media_type: ContentType, size=None) +(url: str, media_type: ContentType, size: Union[int, NoneType] = None)

    Represents a media content in the application.

    diff --git a/docs/telereddit/models/post.html b/docs/telereddit/models/post.html index 0fa831a..7f9fc99 100644 --- a/docs/telereddit/models/post.html +++ b/docs/telereddit/models/post.html @@ -35,7 +35,7 @@

    Classes

    class Post -(subreddit, permalink, title, text, media=None) +(subreddit: str, permalink: str, title: str, text: str, media: Union[Media, NoneType] = None)

    Represents a Reddit post.

    @@ -59,7 +59,7 @@

    Parameters

    Methods

    -def get_msg(self) +def get_msg(self) ‑> str

    Get the full message of the post.

    @@ -67,7 +67,7 @@

    Methods

    a link to the subreddit and a link to the post.

    -def get_type(self) +def get_type(self) ‑> ContentType

    Return the post type: this is determined by the media type, if present.

    diff --git a/docs/telereddit/reddit.html b/docs/telereddit/reddit.html index 750f330..ca1be3d 100644 --- a/docs/telereddit/reddit.html +++ b/docs/telereddit/reddit.html @@ -34,7 +34,7 @@

    Module telereddit.reddit

    Functions

    -def get_post(post_url) +def get_post(post_url: str) ‑> Post

    Get the post from the Reddit API and construct the Post object.

    diff --git a/docs/telereddit/services/generic_service.html b/docs/telereddit/services/generic_service.html index d839fef..8045ff2 100644 --- a/docs/telereddit/services/generic_service.html +++ b/docs/telereddit/services/generic_service.html @@ -41,11 +41,11 @@

    Classes

    Ancestors

    • Service
    • -
    • abc.ABC
    • +
    • icontract._metaclass.DBC

    Class variables

    -
    var has_external_request
    +
    var has_external_request : bool

    Inherited from: @@ -54,7 +54,7 @@

    Class variables

    True if the service needs to reach out to an external http endpoint, False otherwise.

    -
    var is_authenticated
    +
    var is_authenticated : bool

    Inherited from: @@ -63,7 +63,7 @@

    Class variables

    True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise …

    -
    var access_token
    +
    var access_token : Union[str, NoneType]

    Inherited from: @@ -76,13 +76,13 @@

    Class variables

    Static methods

    -def postprocess(response) +def postprocess(cls, response) ‑> Media

    Override of Service.postprocess() method.

    -def preprocess(url, json) +def preprocess(cls, url: str, data: Any) ‑> str

    @@ -92,7 +92,7 @@

    Static methods

    Preprocess the media URL coming from Reddit json …

    -def get(url) +def get(cls, url: str) ‑> Union[requests.models.Response, str]

    @@ -102,7 +102,7 @@

    Static methods

    Get the media information …

    -def authenticate() +def authenticate() ‑> NoneType

    @@ -112,7 +112,7 @@

    Static methods

    Authenticate the service on the service provider API …

    -def get_media(url, json) +def get_media(cls, url: str, data: Any) ‑> Media

    @@ -149,9 +149,9 @@

    get
  • authenticate
  • get_media
  • -
  • has_external_request
  • -
  • is_authenticated
  • -
  • access_token
  • +
  • has_external_request
  • +
  • is_authenticated
  • +
  • access_token
  • diff --git a/docs/telereddit/services/gfycat_service.html b/docs/telereddit/services/gfycat_service.html index 68bc06c..60cd426 100644 --- a/docs/telereddit/services/gfycat_service.html +++ b/docs/telereddit/services/gfycat_service.html @@ -43,11 +43,11 @@

    Notes

    Ancestors

    • Service
    • -
    • abc.ABC
    • +
    • icontract._metaclass.DBC

    Class variables

    -
    var is_authenticated
    +
    var is_authenticated : bool

    Inherited from: @@ -56,7 +56,7 @@

    Class variables

    True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise …

    -
    var access_token
    +
    var access_token : Union[str, NoneType]

    Inherited from: @@ -65,7 +65,7 @@

    Class variables

    Contains the access token for the OAuth authentication if present, None otherwise …

    -
    var has_external_request
    +
    var has_external_request : bool

    Inherited from: @@ -78,21 +78,21 @@

    Class variables

    Static methods

    -def preprocess(url, json) +def preprocess(cls, url: str, data: Any) ‑> str

    Override of Service.preprocess() method.

    Extracts the gfycat Id from the url and constructs the provider url.

    -def get(url) +def get(cls, url: str) ‑> requests.models.Response

    Override of Service.get() method.

    Makes a call to the provider's API.

    -def postprocess(response) +def postprocess(cls, response) ‑> Media

    Override of Service.postprocess() method.

    @@ -100,14 +100,14 @@

    Static methods

    present.

    -def authenticate() +def authenticate() ‑> NoneType

    Override of Service.authenticate() method.

    Authenticates the service through OAuth.

    -def get_media(url, json) +def get_media(cls, url: str, data: Any) ‑> Media

    diff --git a/docs/telereddit/services/imgur_service.html b/docs/telereddit/services/imgur_service.html index 7d219f7..d09f5ec 100644 --- a/docs/telereddit/services/imgur_service.html +++ b/docs/telereddit/services/imgur_service.html @@ -41,11 +41,11 @@

    Classes

    Ancestors

    • Service
    • -
    • abc.ABC
    • +
    • icontract._metaclass.DBC

    Class variables

    -
    var has_external_request
    +
    var has_external_request : bool

    Inherited from: @@ -54,7 +54,7 @@

    Class variables

    True if the service needs to reach out to an external http endpoint, False otherwise.

    -
    var is_authenticated
    +
    var is_authenticated : bool

    Inherited from: @@ -63,7 +63,7 @@

    Class variables

    True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise …

    -
    var access_token
    +
    var access_token : Union[str, NoneType]

    Inherited from: @@ -76,7 +76,7 @@

    Class variables

    Static methods

    -def preprocess(url, json) +def preprocess(cls, url: str, data: Any) ‑> str

    Override of Service.preprocess() method.

    @@ -84,21 +84,21 @@

    Static methods

    url.

    -def get(url) +def get(cls, url: str) ‑> requests.models.Response

    Override of Service.get() method.

    Makes an API call with the client ID as authorization.

    -def postprocess(response) +def postprocess(cls, response) ‑> Media

    Override of Service.postprocess() method.

    Creates the right media object based on the size of provider's media.

    -def authenticate() +def authenticate() ‑> NoneType

    @@ -108,7 +108,7 @@

    Static methods

    Authenticate the service on the service provider API …

    -def get_media(url, json) +def get_media(cls, url: str, data: Any) ‑> Media

    @@ -145,9 +145,9 @@

    postprocess
  • authenticate
  • get_media
  • -
  • has_external_request
  • -
  • is_authenticated
  • -
  • access_token
  • +
  • has_external_request
  • +
  • is_authenticated
  • +
  • access_token
  • diff --git a/docs/telereddit/services/service.html b/docs/telereddit/services/service.html index 003f162..b9ed048 100644 --- a/docs/telereddit/services/service.html +++ b/docs/telereddit/services/service.html @@ -58,7 +58,7 @@

    Notes

    for the first time on the Service creation.

    Ancestors

      -
    • abc.ABC
    • +
    • icontract._metaclass.DBC

    Subclasses

      @@ -70,12 +70,12 @@

      Subclasses

    Class variables

    -
    var has_external_request
    +
    var has_external_request : bool

    True if the service needs to reach out to an external http endpoint, False otherwise.

    -
    var is_authenticated
    +
    var is_authenticated : bool

    True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise.

    @@ -84,7 +84,7 @@

    Class variables

    This is taken into account only if has_external_request is set to True

    -
    var access_token
    +
    var access_token : Union[str, NoneType]

    Contains the access token for the OAuth authentication if present, None otherwise.

    @@ -97,7 +97,7 @@

    Class variables

    Static methods

    -def preprocess(url, json) +def preprocess(cls, url: str, data: Any) ‑> str

    Preprocess the media URL coming from Reddit json.

    @@ -107,7 +107,7 @@

    Parameters

    url : str
    Reddit media URL to preprocess.
    -
    json : json
    +
    data : json
    Json from the Reddit API which contains the post data. Used to get fallback media urls for specific services.
    @@ -118,7 +118,7 @@

    Returns

    -def get(url) +def get(cls, url: str) ‑> Union[requests.models.Response, str]

    Get the media information.

    @@ -139,7 +139,7 @@

    Returns

    Response from the service provider API.

    -def postprocess(response) +def postprocess(cls, response: Union[requests.models.Response, str]) ‑> Media

    From the service provider API response create the media object.

    @@ -159,7 +159,7 @@

    Returns

    Media object related to the media retrieval process.

    -def authenticate() +def authenticate() ‑> NoneType

    Authenticate the service on the service provider API.

    @@ -167,7 +167,7 @@

    Returns

    token.

    -def get_media(url, json) +def get_media(cls, url: str, data: Any) ‑> Media

    Entrypoint of the class.

    @@ -192,7 +192,7 @@

    Parameters

    url : str
    Media URL from the Reddit API json.
    -
    json : json
    +
    data : json
    Json from the Reddit API which contains the post data. Used to get fallback media urls for specific services.
    diff --git a/docs/telereddit/services/services_wrapper.html b/docs/telereddit/services/services_wrapper.html index 7fdc3df..a1707e5 100644 --- a/docs/telereddit/services/services_wrapper.html +++ b/docs/telereddit/services/services_wrapper.html @@ -43,23 +43,23 @@

    Classes

    An instance for each service class is set at class initialization.

    Class variables

    -
    var gfycat
    +
    var gfycatGfycat
    -
    var vreddit
    +
    var vredditVreddit
    -
    var imgur
    +
    var imgurImgur
    -
    var youtube
    +
    var youtubeYoutube
    -
    var generic
    +
    var genericGeneric
    @@ -67,7 +67,7 @@

    Class variables

    Static methods

    -def get_media(url, json={}) +def get_media(cls, url: str, data: Any = None) ‑> Media

    Given the url from the Reddit json, return the corresponding media obj.

    @@ -76,7 +76,7 @@

    Parameters

    url : str
    Url from Reddit API json.
    -
    json : json
    +
    data : json

    (Default value = {})

    Reddit data json containing media fallback urls.

    diff --git a/docs/telereddit/services/vreddit_service.html b/docs/telereddit/services/vreddit_service.html index 5ddd5a4..7a0692e 100644 --- a/docs/telereddit/services/vreddit_service.html +++ b/docs/telereddit/services/vreddit_service.html @@ -41,11 +41,11 @@

    Classes

    Ancestors

    • Service
    • -
    • abc.ABC
    • +
    • icontract._metaclass.DBC

    Class variables

    -
    var has_external_request
    +
    var has_external_request : bool

    Inherited from: @@ -54,7 +54,7 @@

    Class variables

    True if the service needs to reach out to an external http endpoint, False otherwise.

    -
    var is_authenticated
    +
    var is_authenticated : bool

    Inherited from: @@ -63,7 +63,7 @@

    Class variables

    True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise …

    -
    var access_token
    +
    var access_token : Union[str, NoneType]

    Inherited from: @@ -76,7 +76,7 @@

    Class variables

    Static methods

    -def preprocess(url, json) +def preprocess(cls, url: str, data: Any) ‑> str

    Override of Service.preprocess() method.

    @@ -86,14 +86,14 @@

    Static methods

    information in every specific case.

    -def postprocess(response) +def postprocess(cls, response) ‑> Media

    Override of Service.postprocess() method.

    Constructs the media object.

    -def get(url) +def get(cls, url: str) ‑> Union[requests.models.Response, str]

    @@ -103,7 +103,7 @@

    Static methods

    Get the media information …

    -def authenticate() +def authenticate() ‑> NoneType

    @@ -113,7 +113,7 @@

    Static methods

    Authenticate the service on the service provider API …

    -def get_media(url, json) +def get_media(cls, url: str, data: Any) ‑> Media

    @@ -150,9 +150,9 @@

    get
  • authenticate
  • get_media
  • -
  • has_external_request
  • -
  • is_authenticated
  • -
  • access_token
  • +
  • has_external_request
  • +
  • is_authenticated
  • +
  • access_token
  • diff --git a/docs/telereddit/services/youtube_service.html b/docs/telereddit/services/youtube_service.html index 034f02a..7efada7 100644 --- a/docs/telereddit/services/youtube_service.html +++ b/docs/telereddit/services/youtube_service.html @@ -44,11 +44,11 @@

    Notes

    Ancestors

    • Service
    • -
    • abc.ABC
    • +
    • icontract._metaclass.DBC

    Class variables

    -
    var access_token
    +
    var access_token : Union[str, NoneType]

    Inherited from: @@ -57,7 +57,7 @@

    Class variables

    Contains the access token for the OAuth authentication if present, None otherwise …

    -
    var is_authenticated
    +
    var is_authenticated : bool

    Inherited from: @@ -66,7 +66,7 @@

    Class variables

    True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise …

    -
    var has_external_request
    +
    var has_external_request : bool

    Inherited from: @@ -79,28 +79,28 @@

    Class variables

    Static methods

    -def preprocess(url, json) +def preprocess(cls, url: str, data: Any) ‑> str

    Override of Service.preprocess() method.

    Gets the youtube url from reddit json.

    -def get(url) +def get(cls, url: str) ‑> str

    Override of Service.get() method.

    Fake get: simply returns the url given as parameter.

    -def postprocess(url) +def postprocess(cls, response) ‑> Media

    Override of Service.postprocess() method.

    Constructs the media object.

    -def authenticate() +def authenticate() ‑> NoneType

    @@ -110,7 +110,7 @@

    Static methods

    Authenticate the service on the service provider API …

    -def get_media(url, json) +def get_media(cls, url: str, data: Any) ‑> Media

    diff --git a/docs/telereddit/telereddit.html b/docs/telereddit/telereddit.html index c5da28b..3a9d272 100644 --- a/docs/telereddit/telereddit.html +++ b/docs/telereddit/telereddit.html @@ -34,7 +34,7 @@

    Module telereddit.telereddit

    Functions

    -def on_chat_message(update: telegram.update.Update, context: telegram.ext.callbackcontext.CallbackContext) +def on_chat_message(update: telegram.update.Update, context: telegram.ext.callbackcontext.CallbackContext) ‑> NoneType

    Entrypoint of the bot's logic. Handles a single update message.

    @@ -47,7 +47,7 @@

    Parameters

    -def on_callback_query(update: telegram.update.Update, context: telegram.ext.callbackcontext.CallbackContext) +def on_callback_query(update: telegram.update.Update, context: telegram.ext.callbackcontext.CallbackContext) ‑> NoneType

    Handle all the several types of callback queries.

    @@ -61,7 +61,7 @@

    Parameters

    -def main() +def main() ‑> NoneType

    Entrypoint of telereddit. Handles configuration, setup and start of the bot.

    diff --git a/docs/telereddit/tests/test_helpers.html b/docs/telereddit/tests/test_helpers.html index 09b6dba..24e826d 100644 --- a/docs/telereddit/tests/test_helpers.html +++ b/docs/telereddit/tests/test_helpers.html @@ -104,6 +104,12 @@

    Methods

    +
    +def test_get_random_post_url_invalid(self) +
    +
    +
    +
    def test_get_subreddit_names_valid_0(*a)
    @@ -146,8 +152,8 @@

    Methods

    -
    -def test_get_subreddit_name_4(*a) +
    +def test_get_subreddit_name_invalid(self)
    @@ -170,14 +176,8 @@

    Methods

    -
    -def test_truncate_text_3(*a) -
    -
    -
    -
    -
    -def test_truncate_text_4(*a) +
    +def test_truncate_invalid(self)
    @@ -254,6 +254,7 @@

    Index

    TestHelpers

    Methods

    +
    +def test_bot_not_none(self) +
    +
    +
    +
    def test_get_args(self)
    @@ -90,6 +104,156 @@

    Methods

    +
    +def test_send_random_post(self, mock_err_function, mock_send_post) +
    +
    +
    +
    +
    +def test_send_random_post_invalid(self, mock_err_function, mock_send_post) +
    +
    +
    +
    +
    +def test_send_post_from_url(self, mock_err_function, mock_send_post) +
    +
    +
    +
    +
    +def test_send_post_from_url_invalid(self, mock_err_function, mock_send_post) +
    +
    +
    +
    +
    +def test_send_post_0(*a) +
    +
    +
    +
    +
    +def test_send_post_1(*a) +
    +
    +
    +
    +
    +def test_send_post_2(*a) +
    +
    +
    +
    +
    +def test_send_post_3(*a) +
    +
    +
    +
    +
    +def test_send_post_4(*a) +
    +
    +
    +
    +
    +def test_send_post_no_type(self, mock_get_post) +
    +
    +
    +
    +
    +def test_send_post_from_url_true(self, mock_get_post) +
    +
    +
    +
    +
    +def test_send_post_invalid(self, mock_get_post) +
    +
    +
    +
    +
    +def test_send_post_media_too_big(self, mock_get_post) +
    +
    +
    +
    +
    +def test_send_post_err(self, mock_get_post, mock_send_message) +
    +
    +
    +
    +
    +def test_edit_result_none(self) +
    +
    +
    +
    +
    +def test_edit_result(self, mock_edit_random_post) +
    +
    +
    +
    +
    +def test_edit_result_invalid(self, mock_edit_random_post) +
    +
    +
    +
    +
    +def test_edit_random_post_text(self, mock_get_post) +
    +
    +
    +
    +
    +def test_edit_random_post_invalid(self, mock_get_post) +
    +
    +
    +
    +
    +def test_edit_random_post_youtube(self, mock_get_post) +
    +
    +
    +
    +
    +def test_edit_random_post_types_0(*a) +
    +
    +
    +
    +
    +def test_edit_random_post_types_1(*a) +
    +
    +
    +
    +
    +def test_edit_random_post_types_2(*a) +
    +
    +
    +
    +
    +def test_send_exception_message(self, mock_send_message) +
    +
    +
    +
    +
    +def test_send_exception_message_no_kb(self, mock_send_message) +
    +
    +
    +
    @@ -113,9 +277,37 @@

    Index

  • TestLinker

  • diff --git a/docs/telereddit/tests/test_reddit.html b/docs/telereddit/tests/test_reddit.html index b37bf7e..d22b3a2 100644 --- a/docs/telereddit/tests/test_reddit.html +++ b/docs/telereddit/tests/test_reddit.html @@ -106,6 +106,12 @@

    Methods

    +
    +def test_get_json(self, mock_get) +
    +
    +
    +
    def test_get_post_0(*a)
    @@ -163,6 +169,7 @@

    test_get_json_404
  • test_get_json_private
  • test_get_json_valid
  • +
  • test_get_json
  • test_get_post_0
  • test_get_post_1
  • test_get_post_2
  • diff --git a/docs/telereddit/tests/test_services.html b/docs/telereddit/tests/test_services.html index bfaecae..85a95de 100644 --- a/docs/telereddit/tests/test_services.html +++ b/docs/telereddit/tests/test_services.html @@ -160,6 +160,12 @@

    Methods

    +
    +def test_generic_video(self, mock_get) +
    +
    +
    +
    def test_gfycat_authentication_fail(self, mock_post)
    @@ -206,6 +212,7 @@

    test_vreddit_1
  • test_generic_0
  • test_generic_1
  • +
  • test_generic_video
  • test_gfycat_authentication_fail
  • test_gfycat_post_fail
  • test_youtube
  • diff --git a/requirements/dev.txt b/requirements/dev.txt new file mode 100644 index 0000000..e8d6d8e --- /dev/null +++ b/requirements/dev.txt @@ -0,0 +1,4 @@ +-r requirements.txt +-r docs.txt +-r test.txt +-r lint.txt \ No newline at end of file diff --git a/requirements/docs.txt b/requirements/docs.txt new file mode 100644 index 0000000..ede9b35 --- /dev/null +++ b/requirements/docs.txt @@ -0,0 +1,4 @@ +pdoc3>=0.8.1 +pydocstyle>=5.0.2 +docstr-coverage>=1.0.5 +pylint>=2.6.0 \ No newline at end of file diff --git a/requirements/lint.txt b/requirements/lint.txt new file mode 100644 index 0000000..283798b --- /dev/null +++ b/requirements/lint.txt @@ -0,0 +1,6 @@ +black>=19.10b0 +flake8>=3.7.9 +mypy>=0.782 +pylint>=2.6.0 +pydocstyle>=5.0.2 +pyicontract-lint>=2.1.0 \ No newline at end of file diff --git a/requirements.txt b/requirements/requirements.txt similarity index 53% rename from requirements.txt rename to requirements/requirements.txt index f778471f68b7022dc4c3ba19fa4068fab1546a51..c120fa664246100b36416bb4f6136aff32e45448 100644 GIT binary patch delta 44 wcmcb^c!6<(1EbMI$9#oMhGd3(hCGH6h9ZVUAiIRYj=`3}h(V9R7>G?600z1VN&o-= delta 56 zcmcb>c!zO<1Ea-6$9$avhD3%UAkJk-WhepSB8E(cDj=Q0V8>v~V8EcqU=GBF47?0n F3;>hP3m5=5.0.4 +coveralls>=2.0.0 +parameterized>=0.7.4 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index f636b8e..42b444f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,10 +11,19 @@ match = (?!test_).*\.py match_dir = (?!test).* [pydeps] -noshow = True cluster = True max_bacon = 2 max_cluster_size = 3 exclude_exact = telereddit.config telereddit.services rmprefix = - telereddit. \ No newline at end of file + telereddit. + +[mypy] +ignore_missing_imports = True +[mypy-telereddit.tests.*] +ignore_errors = True + +[pep8] +max-line-length = 88 +ignore = E203,W503 +exclude = secret_*.py,tests diff --git a/telereddit/__main__.py b/telereddit/__main__.py index ad12fbd..529d7ef 100644 --- a/telereddit/__main__.py +++ b/telereddit/__main__.py @@ -1,4 +1,8 @@ -"""Main entrypoint of the application. Simply calls the main function of `telereddit`.""" +""" +Main entrypoint of the application. + +Simply calls the main function of `telereddit`. +""" import telereddit.telereddit as telereddit diff --git a/telereddit/config/config.py b/telereddit/config/config.py index ccf9412..214ed78 100644 --- a/telereddit/config/config.py +++ b/telereddit/config/config.py @@ -6,10 +6,12 @@ for a leaner one. """ -from telegram import InlineKeyboardMarkup, InlineKeyboardButton import os import importlib import logging +from typing import Any + +from telegram import InlineKeyboardMarkup, InlineKeyboardButton # type: ignore _delete_btn = InlineKeyboardButton(text="✕", callback_data="delete") @@ -18,20 +20,21 @@ _more_btn = InlineKeyboardButton(text="+", callback_data="more") # Dynamic environment secret configuration +secret: Any = None _env_key = os.environ.get("TELEREDDIT_MACHINE") if _env_key is not None: ENV = _env_key.lower() secret = importlib.import_module( f"telereddit.config.secret_{_env_key.lower()}" - ).secret_config + ).secret_config # type: ignore else: - logging.warn( + logging.warning( 'No "TELEREDDIT_MACHINE" environment variable found. Using generic secret.' ) ENV = "generic" secret = importlib.import_module( "telereddit.config.secret_generic" - ).secret_config + ).secret_config # type: ignore REDDIT_DOMAINS = ["reddit.com", "redd.it", "reddit.app.link"] MAX_POST_LENGTH = 500 diff --git a/telereddit/exceptions.py b/telereddit/exceptions.py index 0d51185..3807fbe 100644 --- a/telereddit/exceptions.py +++ b/telereddit/exceptions.py @@ -5,8 +5,10 @@ flow between two functions. """ -import sentry_sdk as sentry import traceback +from typing import Any +import logging +import sentry_sdk as sentry import telereddit.config.config as config @@ -37,7 +39,7 @@ class TeleredditError(Exception): """ - def __init__(self, msg, data=None, capture=False): + def __init__(self, msg: Any, data: Any = None, capture: bool = False): super().__init__(msg) if config.SENTRY_ENABLED: if data is not None: @@ -47,14 +49,18 @@ def __init__(self, msg, data=None, capture=False): if capture: sentry.capture_exception() traceback.print_exc() - print("\nException:", self.__class__.__name__) - print("Message: ", self, ", Data: ", data) + logging.exception( + "\nEXCEPTION: %s, MESSAGE: %s, DATA: %s", + self.__class__.__name__, + self, + data, + ) class AuthenticationError(TeleredditError): """Raised when a service cannot authenticate to the API provider.""" - def __init__(self, data=None, capture=True): + def __init__(self, data: Any = None, capture: bool = True): super().__init__("Authentication failed", data, capture) @@ -69,9 +75,6 @@ class SubredditError(TeleredditError): or not existing, and therfore **should not** be captured by Sentry. """ - def __init__(self, msg, data=None, capture=False): - super().__init__(msg, data, capture) - class PostError(TeleredditError): """ @@ -83,7 +86,7 @@ class PostError(TeleredditError): **should** be captured by Sentry. """ - def __init__(self, msg, data=None, capture=True): + def __init__(self, msg: Any, data: Any = None, capture: bool = True): super().__init__(msg, data, capture) @@ -98,21 +101,21 @@ class MediaError(TeleredditError): For this, unless specified otherwise, they **should** be captured by Sentry. """ - def __init__(self, msg, data=None, capture=True): + def __init__(self, msg: Any, data: Any = None, capture: bool = True): super().__init__(msg, data, capture) class SubredditPrivateError(SubredditError): """Raised when the subreddit is private, and therefore cannot be fetched.""" - def __init__(self, data=None, capture=False): + def __init__(self, data: Any = None, capture: bool = False): super().__init__("This subreddit is private.", data, capture) class SubredditDoesntExistError(SubredditError): """Raised when the subreddit does not exist.""" - def __init__(self, data=None, capture=False): + def __init__(self, data: Any = None, capture: bool = False): super().__init__("This subreddit doesn't exist.", data, capture) @@ -123,7 +126,7 @@ class PostRequestError(PostError): .. note:: Not to be confused with `PostRetrievalError` """ - def __init__(self, data=None, capture=True): + def __init__(self, data: Any = None, capture: bool = True): super().__init__("I can't find that subreddit.", data, capture) @@ -135,7 +138,7 @@ class PostRetrievalError(PostError): expected. """ - def __init__(self, data=None, capture=True): + def __init__(self, data: Any = None, capture: bool = True): super().__init__("The retrieval of the post failed.", data, capture) @@ -147,7 +150,7 @@ class PostSendError(PostError): APIs expect. """ - def __init__(self, data=None, capture=True): + def __init__(self, data: Any = None, capture: bool = True): super().__init__( "There has been an error in sending the post.", data, capture ) @@ -160,11 +163,11 @@ class PostEqualsMessageError(PostError): Capture ------- This error is useful when editing a Telegram message with a different post. - It is thus raised as a correct program flow, and therefore it **should not** be - captured from Sentry. + It is thus raised as a correct program flow, and therefore it **should not** + be captured from Sentry. """ - def __init__(self, data=None, capture=False): + def __init__(self, data: Any = None, capture: bool = False): super().__init__( "The retrieved post is equal to the already sent message.", data, @@ -181,12 +184,12 @@ class MediaTooBigError(MediaError): https://core.telegram.org/bots/api#sending-files """ - def __init__(self, data=None, capture=True): + def __init__(self, data: Any = None, capture: bool = True): super().__init__("Media is too big to be sent.", data, capture) class MediaRetrievalError(MediaError): """Raised when there's an error in the media retrieval request.""" - def __init__(self, data=None, capture=True): + def __init__(self, data: Any = None, capture: bool = True): super().__init__("Error in getting the media", data, capture) diff --git a/telereddit/helpers.py b/telereddit/helpers.py index 5bc3afa..e5d02c6 100644 --- a/telereddit/helpers.py +++ b/telereddit/helpers.py @@ -1,13 +1,22 @@ """Miscellaneous helpers for the whole application.""" +from typing import List, Optional, Any import re import requests +from requests import Response +from requests.exceptions import RequestException +import icontract from telereddit.config.config import MAX_TITLE_LENGTH import telegram -def get_random_post_url(subreddit): +@icontract.require( + lambda subreddit: subreddit is not None and len(subreddit) > 0, + "subreddit must not be None", +) +@icontract.ensure(lambda result, subreddit: subreddit in result) +def get_random_post_url(subreddit: str) -> str: """ Return the "random post" url relative to the Reddit API. @@ -25,7 +34,11 @@ def get_random_post_url(subreddit): return f"https://www.reddit.com/{subreddit}/random" -def get_subreddit_names(text): +@icontract.require( + lambda text: text is not None and len(text) > 0, + "text must not be None", +) +def get_subreddit_names(text: str) -> List[str]: """ Return a list of the ("r/" prefixed) subreddit names present in the text. @@ -50,7 +63,11 @@ def get_subreddit_names(text): return re.findall(regex, text, re.MULTILINE) -def get_subreddit_name(text, reverse=False): +@icontract.require( + lambda text, reverse: text is not None and len(text) > 0, + "text must not be None", +) +def get_subreddit_name(text: str, reverse: bool = False) -> Optional[str]: """ Return the first (or last) ("r/" prefixed) subreddit name in the given text. @@ -71,13 +88,16 @@ def get_subreddit_name(text, reverse=False): """ subs = get_subreddit_names(text) - if len(subs): + if len(subs) > 0: return subs[-1] if reverse else subs[0] - else: - return None + return None -def escape_markdown(text): +@icontract.require( + lambda text: text is not None, + "text must not be None", +) +def escape_markdown(text: str) -> str: """ Return the given text with escaped common markdown characters. @@ -99,7 +119,15 @@ def escape_markdown(text): return telegram.utils.helpers.escape_markdown(text, version=2) -def truncate_text(text, length=MAX_TITLE_LENGTH): +@icontract.require( + lambda text, length: text is not None, + "text must not be None", +) +@icontract.require( + lambda text, length: length > 0, + "length must not be <= 0", +) +def truncate_text(text: str, length: int = MAX_TITLE_LENGTH) -> str: """ Return the given text, truncated at `length` characters, plus ellipsis. @@ -120,12 +148,14 @@ def truncate_text(text, length=MAX_TITLE_LENGTH): New string containing the truncated text, plus ellipsis. """ - if length < 0: - return text return text[:length] + (text[length:] and "...") -def polish_text(text): +@icontract.require( + lambda text: text is not None and len(text) > 0, + "text must not be None", +) +def polish_text(text: str) -> str: """ Return the given text without newline characters. @@ -143,7 +173,11 @@ def polish_text(text): return text.replace("\n", " ") -def get_urls_from_text(text): +@icontract.require( + lambda text: text is not None and len(text) > 0, + "text must not be None", +) +def get_urls_from_text(text: str) -> List[str]: """ Return a list of the reddit urls present in the given text. @@ -160,31 +194,37 @@ def get_urls_from_text(text): """ polished = polish_text(text) urls = list() - for w in polished.split(" "): - w_lower = w.lower() + for word in polished.split(" "): + w_lower = word.lower() if "reddit.com" in w_lower: - urls.append(w.partition("/?")[0]) + urls.append(word.partition("/?")[0]) if "redd.it" in w_lower: urls.append( - f'https://www.reddit.com/comments/{w.partition("redd.it/")[2]}' + f'https://www.reddit.com/comments/{word.partition("redd.it/")[2]}' ) if "reddit.app.link" in w_lower: try: - r = requests.get( - w, + resp: Response = requests.get( + word, headers={"User-agent": "telereddit_bot"}, allow_redirects=False, ) - start = r.text.find("https://") - url = r.text[start : r.text.find('"', start)] + start = resp.text.find("https://") + url = resp.text[start : resp.text.find('"', start)] if len(url) > 0: urls.append(url.partition("/?")[0]) - except Exception: + except RequestException: pass return urls -def get(obj, attr, default=None): +@icontract.require( + lambda obj, attr, default: obj is not None, "obj must not be None" +) +@icontract.require( + lambda obj, attr, default: attr is not None, "attr must not be None" +) +def get(obj: Any, attr: str, default: Any = None) -> Any: """ Return the value of `attr` if it exists and is not None, default otherwise. @@ -212,7 +252,14 @@ def get(obj, attr, default=None): return obj[attr] if attr in obj and obj[attr] is not None else default -def chained_get(obj, attrs, default=None): +@icontract.require( + lambda obj, attrs, default: obj is not None, "obj must not be None" +) +@icontract.require( + lambda obj, attrs, default: attrs is not None and len(attrs) > 0, + "attrs must not be None", +) +def chained_get(obj: object, attrs: List[str], default: Any = None) -> Any: """ Get for nested objects. diff --git a/telereddit/linker.py b/telereddit/linker.py index 7b6cb92..b0f19e5 100644 --- a/telereddit/linker.py +++ b/telereddit/linker.py @@ -1,6 +1,13 @@ """Linker class which handles all telereddit requests.""" -from telegram import InputMediaPhoto, InputMediaVideo, InputMediaDocument +from typing import Optional +from telegram import ( # type: ignore + InputMediaPhoto, + InputMediaVideo, + InputMediaDocument, +) +from telegram.bot import Bot, Message # type: ignore +import icontract from telereddit.config.config import ( MAX_TRIES, @@ -12,7 +19,7 @@ ) import telereddit.reddit as reddit import telereddit.helpers as helpers -from telereddit.models.media import ContentType +from telereddit.models.media import ContentType, Media from telereddit.exceptions import ( SubredditError, TeleredditError, @@ -22,6 +29,8 @@ ) +@icontract.invariant(lambda self: self.bot is not None) +@icontract.invariant(lambda self: self.chat_id is not None) class Linker: """ Handle a single telereddit request. @@ -40,8 +49,10 @@ class Linker: """ + bot: Bot = None + @classmethod - def set_bot(cls, bot): + def set_bot(cls, bot: Bot) -> None: """ Set the python-telegram-bot's Bot instance for the Linker object. @@ -57,16 +68,18 @@ def set_bot(cls, bot): """ cls.bot = bot - def __init__(self, chat_id): - self.chat_id = chat_id - self.args = dict( + def __init__(self, chat_id: int) -> None: + self.chat_id: int = chat_id + self.args: dict = dict( chat_id=chat_id, parse_mode="MarkdownV2", reply_markup=EDIT_KEYBOARD, disable_web_page_preview=True, ) - def get_args(self, override_dict={}): + @icontract.snapshot(lambda self: self.args, name="args") + @icontract.ensure(lambda OLD, self, override_dict: OLD.args == self.args) + def get_args(self, override_dict: Optional[dict] = None) -> dict: """ Get the args parameters potentially overriding some of them. @@ -84,10 +97,14 @@ def get_args(self, override_dict={}): """ args = self.args.copy() - args.update(override_dict) + if override_dict: + args.update(override_dict) return args - def send_random_post(self, subreddit): + @icontract.require( + lambda subreddit: subreddit is not None, "subreddit must not be None" + ) + def send_random_post(self, subreddit: str) -> None: """ Send a random post to the chat from the given subreddit. @@ -110,7 +127,10 @@ def send_random_post(self, subreddit): break return self._send_exception_message(err) - def send_post_from_url(self, post_url): + @icontract.require( + lambda post_url: post_url is not None, "post_url must not be None" + ) + def send_post_from_url(self, post_url: str) -> None: """ Try to send the reddit post relative to post_url to the chat. @@ -127,7 +147,10 @@ def send_post_from_url(self, post_url): except TeleredditError as e: self._send_exception_message(e, keyboard=False) - def send_post(self, post_url, from_url=False): + @icontract.require( + lambda post_url: post_url is not None, "post_url must not be None" + ) + def send_post(self, post_url: str, from_url: bool = False) -> None: """ Send the reddit post relative to post_url to the chat. @@ -146,6 +169,7 @@ def send_post(self, post_url, from_url=False): """ post = reddit.get_post(post_url) + assert post is not None if post.media and post.media.size and post.media.size > MAX_MEDIA_SIZE: raise MediaTooBigError() @@ -161,7 +185,8 @@ def send_post(self, post_url, from_url=False): elif post.get_type() == ContentType.YOUTUBE: args["disable_web_page_preview"] = False self.bot.sendMessage(text=post.get_msg(), **args) - elif post.get_type() == ContentType.GIF: + assert post.media is not None + if post.get_type() == ContentType.GIF: self.bot.sendDocument( document=post.media.url, caption=post.get_msg(), **args ) @@ -174,12 +199,15 @@ def send_post(self, post_url, from_url=False): photo=post.media.url, caption=post.get_msg(), **args ) - except Exception: + except Exception as e: raise PostSendError( - {"post_url": post.permalink, "media_url": post.media.url} - ) + {"post_url": post.permalink, "media_url": post.media.url} # type: ignore + ) from e - def edit_result(self, message): + @icontract.require( + lambda message: message is not None, "message must not be None" + ) + def edit_result(self, message: Message) -> None: """ Edit the given message with a new post from that subreddit. @@ -207,7 +235,10 @@ def edit_result(self, message): self.chat_id, message.message_id, reply_markup=EDIT_FAILED_KEYBOARD ) - def edit_random_post(self, message, subreddit): + @icontract.require( + lambda message: message is not None, "message must not be None" + ) + def edit_random_post(self, message: Message, subreddit: str) -> None: """ Edit the current Telegram message with another random Reddit post. @@ -222,7 +253,7 @@ def edit_random_post(self, message, subreddit): """ msg_is_text = message.caption is None post = reddit.get_post(helpers.get_random_post_url(subreddit)) - + assert post is not None if ( (msg_is_text and message.text_markdown == post.get_msg()) or message.caption_markdown == post.get_msg() @@ -241,8 +272,9 @@ def edit_random_post(self, message, subreddit): args["disable_web_page_preview"] = False self.bot.editMessageText(post.get_msg(), **args) else: + media: Optional[Media] = None media_args = dict( - media=post.media.url, + media=post.media.url, # type: ignore caption=post.get_msg(), parse_mode="Markdown", ) @@ -254,12 +286,15 @@ def edit_random_post(self, message, subreddit): media = InputMediaPhoto(**media_args) self.bot.editMessageMedia(media=media, **args) return - except Exception: + except Exception as e: raise PostSendError( - {"post_url": post.permalink, "media_url": post.media.url} - ) + {"post_url": post.permalink, "media_url": post.media.url} # type: ignore + ) from e - def _send_exception_message(self, e, keyboard=True): + @icontract.require(lambda e: e is not None, "e must not be None") + def _send_exception_message( + self, e: Exception, keyboard: bool = True + ) -> None: """ Send the exception text as a Telegram message to notify the user. diff --git a/telereddit/models/content_type.py b/telereddit/models/content_type.py index 5eef9cc..b8c7b74 100644 --- a/telereddit/models/content_type.py +++ b/telereddit/models/content_type.py @@ -6,4 +6,4 @@ class ContentType(Enum): """Enumerable to represent different `telereddit.models.post.Post` types.""" - TEXT, PHOTO, VIDEO, GIF, YOUTUBE, *_ = range(20) + TEXT, PHOTO, VIDEO, GIF, YOUTUBE = range(5) diff --git a/telereddit/models/media.py b/telereddit/models/media.py index 4fa2e01..8efcc35 100644 --- a/telereddit/models/media.py +++ b/telereddit/models/media.py @@ -1,5 +1,6 @@ """Module for Media class.""" +from typing import Optional from telereddit.models.content_type import ContentType @@ -28,7 +29,9 @@ class Media: """ - def __init__(self, url, media_type: ContentType, size=None): + def __init__( + self, url: str, media_type: ContentType, size: Optional[int] = None + ): self.url = url self.type = media_type self.size = size diff --git a/telereddit/models/post.py b/telereddit/models/post.py index b9488d8..dec8b69 100644 --- a/telereddit/models/post.py +++ b/telereddit/models/post.py @@ -1,7 +1,10 @@ """Module for Post class.""" +from typing import Optional + from telereddit.models.content_type import ContentType from telereddit.helpers import escape_markdown +from telereddit.models.media import Media class Post: @@ -26,14 +29,22 @@ class Post: """ - def __init__(self, subreddit, permalink, title, text, media=None): + def __init__( + self, + subreddit: str, + permalink: str, + title: str, + text: str, + media: Optional[Media] = None, + ): + self.subreddit = subreddit self.permalink = permalink self.title = title self.text = text self.media = media - def get_msg(self): + def get_msg(self) -> str: """ Get the full message of the post. @@ -51,6 +62,6 @@ def get_msg(self): f"\n\n{footer}" ) - def get_type(self): + def get_type(self) -> ContentType: """Return the post type: this is determined by the media type, if present.""" return self.media.type if self.media else ContentType.TEXT diff --git a/telereddit/reddit.py b/telereddit/reddit.py index d0d457e..951bb31 100644 --- a/telereddit/reddit.py +++ b/telereddit/reddit.py @@ -5,8 +5,11 @@ and build telereddit objects. """ -import requests import random +from typing import Any + +import requests +import icontract import telereddit.helpers as helpers from telereddit.config.config import secret @@ -22,7 +25,14 @@ from telereddit.services.services_wrapper import ServicesWrapper -def _get_json(post_url): +@icontract.require( + lambda post_url: post_url is not None, "post_url must not be None" +) +@icontract.ensure( + lambda result: helpers.chained_get(result, ["data", "children"])[0]["data"] + is not None +) +def _get_json(post_url: str) -> Any: """ Get post json from Reddit API and handle all request/json errors. @@ -45,12 +55,12 @@ def _get_json(post_url): json = response.json() # some subreddits have the json data wrapped in brackets, some do not json = json if isinstance(json, dict) else json[0] - except Exception: - raise PostRequestError({"post_url": post_url}) + except Exception as e: + raise PostRequestError({"post_url": post_url}) from e if json.get("reason") == "private": raise SubredditPrivateError() - elif ( + if ( json.get("error") == 404 or len(json["data"]["children"]) == 0 or (len(response.history) > 0 and "search.json" in response.url) @@ -61,7 +71,11 @@ def _get_json(post_url): return json -def get_post(post_url): +@icontract.require( + lambda post_url: post_url is not None, "post_url must not be None" +) +@icontract.ensure(lambda result: result is not None) +def get_post(post_url: str) -> Post: """ Get the post from the Reddit API and construct the Post object. @@ -77,6 +91,7 @@ def get_post(post_url): """ json = _get_json(post_url) + assert json is not None try: idx = random.randint(0, len(json["data"]["children"]) - 1) @@ -90,6 +105,7 @@ def get_post(post_url): media = None if "/comments/" not in content_url: media = ServicesWrapper.get_media(content_url, data) + assert media is not None if media.type == ContentType.YOUTUBE: post_text = ( f"{post_text}\n\n[Link to youtube video]({media.url})" @@ -101,4 +117,4 @@ def get_post(post_url): except Exception as e: if issubclass(type(e), TeleredditError): raise e - raise PostRetrievalError({"post_url": post_url}) + raise PostRetrievalError({"post_url": post_url}) from e diff --git a/telereddit/services/generic_service.py b/telereddit/services/generic_service.py index ca98503..fce277b 100644 --- a/telereddit/services/generic_service.py +++ b/telereddit/services/generic_service.py @@ -1,4 +1,6 @@ """Service for when a suitable specific service is not found.""" +from typing import Optional + from telereddit.services.service import Service from telereddit.models.media import Media from telereddit.models.content_type import ContentType @@ -8,10 +10,10 @@ class Generic(Service): """Service for when a suitable specific service is not found.""" @classmethod - def postprocess(cls, response): + def postprocess(cls, response) -> Media: """Override of `telereddit.services.service.Service.postprocess` method.""" - file_size = None - media_type = ContentType.PHOTO + file_size: Optional[int] = None + media_type: ContentType = ContentType.PHOTO if ".gif" in response.url: media_type = ContentType.GIF diff --git a/telereddit/services/gfycat_service.py b/telereddit/services/gfycat_service.py index 57ac382..9e5e1f1 100644 --- a/telereddit/services/gfycat_service.py +++ b/telereddit/services/gfycat_service.py @@ -1,17 +1,24 @@ """Service for Gfycat GIFs.""" +from typing import Any + import json +from urllib.parse import urlparse import requests -from urllib.parse import urlparse -from telereddit.config.config import secret +from requests import Response +import icontract +from telereddit.config.config import secret from telereddit.services.service import Service from telereddit.models.media import Media from telereddit.models.content_type import ContentType from telereddit.exceptions import AuthenticationError +@icontract.invariant( + lambda self: self.is_authenticated is True and self.access_token is not None +) class Gfycat(Service): """ Service for Gfycat GIFs. @@ -22,23 +29,23 @@ class Gfycat(Service): """ - is_authenticated = True + is_authenticated: bool = True def __init__(self): Gfycat.authenticate() @classmethod - def preprocess(cls, url, json): + def preprocess(cls, url: str, data: Any) -> str: """ Override of `telereddit.services.service.Service.preprocess` method. Extracts the gfycat Id from the url and constructs the provider url. """ - gfyid = urlparse(url).path.partition("-")[0] + gfyid: str = urlparse(url).path.partition("-")[0] return f"https://api.gfycat.com/v1/gfycats/{gfyid}" @classmethod - def get(cls, url): + def get(cls, url: str) -> Response: """ Override of `telereddit.services.service.Service.get` method. @@ -49,35 +56,35 @@ def get(cls, url): ) @classmethod - def postprocess(cls, response): + def postprocess(cls, response) -> Media: """ Override of `telereddit.services.service.Service.postprocess` method. Returns the media url which respects the Telegram API file limits, if present. """ - gfy_item = json.loads(response.content)["gfyItem"] - media = Media( + gfy_item: Any = json.loads(response.content)["gfyItem"] + media: Media = Media( gfy_item["webmUrl"].replace(".webm", ".mp4"), ContentType.VIDEO, gfy_item["webmSize"], ) # Telegram does not support webm - # See: https://www.reddit.com/r/Telegram/comments/5wcqh8/sending_webms_as_videos/ - if media.size > 20000000: + # See: https://shorturl.at/dnyBM + if media.size and media.size > 20000000: media.url = gfy_item["max5mbGif"] media.type = ContentType.GIF media.size = 5000000 return media @classmethod - def authenticate(cls): + def authenticate(cls) -> None: """ Override of `telereddit.services.service.Service.authenticate` method. Authenticates the service through OAuth. """ - response = requests.post( + response: Response = requests.post( "https://api.gfycat.com/v1/oauth/token", data=json.dumps( { @@ -88,12 +95,6 @@ def authenticate(cls): ), ) if response.status_code >= 300: - raise AuthenticationError( - { - "response_text": response.text, - # "client_id": secret.GFYCAT_CLIENT_ID, - # "client_secret": secret.GFYCAT_CLIENT_SECRET, - } - ) + raise AuthenticationError({"response_text": response.text}) cls.access_token = json.loads(response.content)["access_token"] diff --git a/telereddit/services/imgur_service.py b/telereddit/services/imgur_service.py index 8eaf88c..cfd1e55 100644 --- a/telereddit/services/imgur_service.py +++ b/telereddit/services/imgur_service.py @@ -1,8 +1,10 @@ """Service for Imgur images and videos.""" +import re +from typing import Any import json from urllib.parse import urlparse import requests -import re +from requests import Response from telereddit.config.config import secret from telereddit.services.service import Service @@ -14,22 +16,22 @@ class Imgur(Service): """Service for Imgur images and videos.""" @classmethod - def preprocess(cls, url, json): + def preprocess(cls, url: str, data: Any) -> str: """ Override of `telereddit.services.service.Service.preprocess` method. Gets the media hash from the url and creates the accepted provider media url. """ - media_hash = urlparse(url).path.rpartition("/")[2] + media_hash: str = urlparse(url).path.rpartition("/")[2] r = re.compile(r"image|gallery").search(url) - api = r.group() if r else "image" + api: str = r.group() if r else "image" if "." in media_hash: media_hash = media_hash.rpartition(".")[0] return f"https://api.imgur.com/3/{api}/{media_hash}" @classmethod - def get(cls, url): + def get(cls, url: str) -> Response: """ Override of `telereddit.services.service.Service.get` method. @@ -41,14 +43,14 @@ def get(cls, url): ) @classmethod - def postprocess(cls, response): + def postprocess(cls, response) -> Media: """ Override of `telereddit.services.service.Service.postprocess` method. Creates the right media object based on the size of provider's media. """ - data = json.loads(response.content)["data"] - media = None + data: Any = json.loads(response.content)["data"] + media: Media if "images" in data: data = data["images"][0] if "image/jpeg" in data["type"] or "image/png" in data["type"]: diff --git a/telereddit/services/service.py b/telereddit/services/service.py index ca3860d..2e1f79b 100644 --- a/telereddit/services/service.py +++ b/telereddit/services/service.py @@ -1,11 +1,16 @@ """Abstract Base static Class for every service.""" -from abc import ABC, abstractmethod +from abc import abstractmethod +from typing import Optional, Any, Union + import requests +from requests import Response +import icontract +from telereddit.models.media import Media from telereddit.exceptions import MediaRetrievalError -class Service(ABC): +class Service(icontract.DBC): """ Abstract Base static Class for every service class. @@ -34,12 +39,12 @@ class Service(ABC): """ - has_external_request = True + has_external_request: bool = True """ True if the service needs to reach out to an external http endpoint, False otherwise. """ - is_authenticated = False + is_authenticated: bool = False """ True if the external request needs to be authenticated (i.e. with an Authorization header), False otherwise. @@ -47,7 +52,7 @@ class Service(ABC): .. note:: This is taken into account only if `has_external_request` is set to True """ - access_token = None + access_token: Optional[str] = None """ Contains the access token for the OAuth authentication if present, None otherwise. @@ -57,7 +62,11 @@ class Service(ABC): """ @classmethod - def preprocess(cls, url, json): + @icontract.require( + lambda cls, url, data: url is not None, "url must not be None" + ) + @icontract.ensure(lambda result: result is not None) + def preprocess(cls, url: str, data: Any) -> str: """ Preprocess the media URL coming from Reddit json. @@ -68,7 +77,7 @@ def preprocess(cls, url, json): ---------- url : str Reddit media URL to preprocess. - json : json + data : json Json from the Reddit API which contains the post data. Used to get fallback media urls for specific services. @@ -81,7 +90,9 @@ def preprocess(cls, url, json): return url @classmethod - def get(cls, url): + @icontract.require(lambda cls, url: url is not None, "url must not be None") + @icontract.ensure(lambda result: result is not None) + def get(cls, url: str) -> Union[Response, str]: """ Get the media information. @@ -107,7 +118,11 @@ def get(cls, url): @classmethod @abstractmethod - def postprocess(cls, response): + @icontract.require( + lambda cls, response: response is not None, "response must not be None" + ) + @icontract.ensure(lambda result: result is not None) + def postprocess(cls, response: Union[Response, str]) -> Media: """ From the service provider API response create the media object. @@ -130,17 +145,20 @@ def postprocess(cls, response): raise NotImplementedError() @classmethod - def authenticate(cls): + def authenticate(cls) -> None: """ Authenticate the service on the service provider API. Update the `access_code` variable with the newly refreshed valid access token. """ - pass @classmethod - def get_media(cls, url, json): + @icontract.require( + lambda cls, url, data: url is not None, "url must not be None" + ) + @icontract.ensure(lambda result: result is not None) + def get_media(cls, url: str, data: Any) -> Media: """ Entrypoint of the class. @@ -162,7 +180,7 @@ def get_media(cls, url, json): ---------- url : str Media URL from the Reddit API json. - json : json + data : json Json from the Reddit API which contains the post data. Used to get fallback media urls for specific services. @@ -172,14 +190,14 @@ def get_media(cls, url, json): The media object accessible from the application. """ - processed_url = cls.preprocess(url, json) + processed_url: str = cls.preprocess(url, data) - response = cls.get(processed_url) + response: Union[Response, str] = cls.get(processed_url) if cls.has_external_request: - if cls.is_authenticated and response.status_code == 401: + if cls.is_authenticated and response.status_code == 401: # type: ignore cls.authenticate() response = cls.get(processed_url) - if response.status_code >= 300: + if response.status_code >= 300: # type: ignore raise MediaRetrievalError( { "service": cls.__name__, diff --git a/telereddit/services/services_wrapper.py b/telereddit/services/services_wrapper.py index 58abaf4..956f848 100644 --- a/telereddit/services/services_wrapper.py +++ b/telereddit/services/services_wrapper.py @@ -2,12 +2,15 @@ import logging from urllib.parse import urlparse +from typing import Any +import icontract from telereddit.services.gfycat_service import Gfycat from telereddit.services.vreddit_service import Vreddit from telereddit.services.imgur_service import Imgur from telereddit.services.youtube_service import Youtube from telereddit.services.generic_service import Generic +from telereddit.models.media import Media class ServicesWrapper: @@ -20,14 +23,18 @@ class ServicesWrapper: An instance for each service class is set at class initialization. """ - gfycat = Gfycat() - vreddit = Vreddit() - imgur = Imgur() - youtube = Youtube() - generic = Generic() + gfycat: Gfycat = Gfycat() + vreddit: Vreddit = Vreddit() + imgur: Imgur = Imgur() + youtube: Youtube = Youtube() + generic: Generic = Generic() @classmethod - def get_media(cls, url, json={}): + @icontract.require( + lambda cls, url, data: url is not None, "url must not be None" + ) + @icontract.ensure(lambda result: result is not None) + def get_media(cls, url: str, data: Any = None) -> Media: """ Given the url from the Reddit json, return the corresponding media obj. @@ -37,7 +44,7 @@ def get_media(cls, url, json={}): ---------- url : str Url from Reddit API json. - json : json + data : json (Default value = {}) Reddit data json containing media fallback urls. @@ -48,21 +55,22 @@ def get_media(cls, url, json={}): The media object corresponding to the media post url. """ - parsed_url = urlparse(url) - base_url = parsed_url.netloc + base_url: str = urlparse(url).netloc + media: Media if "gfycat.com" in base_url: - media = cls.gfycat.get_media(url, json) + media = cls.gfycat.get_media(url, data) elif "v.redd.it" in base_url: - media = cls.vreddit.get_media(url, json) + media = cls.vreddit.get_media(url, data) elif "imgur.com" in base_url: - media = cls.imgur.get_media(url, json) + media = cls.imgur.get_media(url, data) elif "youtube.com" in base_url or "youtu.be" in base_url: - media = cls.youtube.get_media(url, json) + media = cls.youtube.get_media(url, data) else: - logging.warning( - f"services_wrapper: no suitable service found. base_url: {base_url}" + logging.info( + "services_wrapper: no suitable service found. base_url: %s", + base_url, ) - media = cls.generic.get_media(url, json) + media = cls.generic.get_media(url, data) return media diff --git a/telereddit/services/vreddit_service.py b/telereddit/services/vreddit_service.py index 980c66a..294b928 100644 --- a/telereddit/services/vreddit_service.py +++ b/telereddit/services/vreddit_service.py @@ -1,4 +1,5 @@ """Service for v.redd.it GIFs.""" +from typing import Any, Optional import requests from telereddit.services.service import Service @@ -11,7 +12,7 @@ class Vreddit(Service): """Service for v.redd.it GIFs.""" @classmethod - def preprocess(cls, url, json): + def preprocess(cls, url: str, data: Any) -> str: """ Override of `telereddit.services.service.Service.preprocess` method. @@ -21,7 +22,8 @@ def preprocess(cls, url, json): needed, therefore we need to seach in the json for the correct piece of information in every specific case. """ - xpost = helpers.get(json, "crosspost_parent_list") + xpost: Optional[Any] = helpers.get(data, "crosspost_parent_list") + fallback_url: str if xpost is not None and len(xpost) > 0: # crossposts have media = null and have the fallback url in the # crosspost source @@ -30,22 +32,24 @@ def preprocess(cls, url, json): ) else: fallback_url = helpers.chained_get( - json, ["media", "reddit_video", "fallback_url"] + data, ["media", "reddit_video", "fallback_url"] ) - processed_url = fallback_url if fallback_url else f"{url}/DASH_1_2_M" + processed_url: str = ( + fallback_url if fallback_url else f"{url}/DASH_1_2_M" + ) if requests.head(processed_url).status_code >= 300: processed_url = f"{url}/DASH_1080" return processed_url @classmethod - def postprocess(cls, response): + def postprocess(cls, response) -> Media: """ Override of `telereddit.services.service.Service.postprocess` method. Constructs the media object. """ - media = Media(response.url, ContentType.GIF) + media: Media = Media(response.url, ContentType.GIF) if "Content-length" in response.headers: media.size = int(response.headers["Content-length"]) return media diff --git a/telereddit/services/youtube_service.py b/telereddit/services/youtube_service.py index 004bf13..f66cd2e 100644 --- a/telereddit/services/youtube_service.py +++ b/telereddit/services/youtube_service.py @@ -1,4 +1,6 @@ """Service for Youtube URLs.""" +from typing import Optional, Any + from telereddit.services.service import Service from telereddit.models.media import Media from telereddit.models.content_type import ContentType @@ -16,22 +18,22 @@ class Youtube(Service): """ - access_token = None - is_authenticated = False - has_external_request = False + access_token: Optional[str] = None + is_authenticated: bool = False + has_external_request: bool = False @classmethod - def preprocess(cls, url, json): + def preprocess(cls, url: str, data: Any) -> str: """ Override of `telereddit.services.service.Service.preprocess` method. Gets the youtube url from reddit json. """ - oembed_url = helpers.chained_get(json, ["media", "oembed", "url"]) + oembed_url: str = helpers.chained_get(data, ["media", "oembed", "url"]) return oembed_url if oembed_url else url @classmethod - def get(cls, url): + def get(cls, url: str) -> str: """ Override of `telereddit.services.service.Service.get` method. @@ -40,10 +42,10 @@ def get(cls, url): return url @classmethod - def postprocess(cls, url): + def postprocess(cls, response) -> Media: """ Override of `telereddit.services.service.Service.postprocess` method. Constructs the media object. """ - return Media(url, ContentType.YOUTUBE) + return Media(response, ContentType.YOUTUBE) diff --git a/telereddit/telereddit.py b/telereddit/telereddit.py index f511eff..51e72a4 100644 --- a/telereddit/telereddit.py +++ b/telereddit/telereddit.py @@ -7,17 +7,20 @@ messages and dispatch actions to the other modules. """ +import logging +from typing import List + import sentry_sdk -from telegram.ext import ( +from telegram.ext import ( # type: ignore Updater, CallbackContext, MessageHandler, CallbackQueryHandler, Filters, ) -from telegram import Update -import logging +from telegram import Update, Message # type: ignore +import icontract from telereddit.linker import Linker import telereddit.helpers as helpers @@ -25,7 +28,13 @@ from telereddit.config.config import secret -def on_chat_message(update: Update, context: CallbackContext): +@icontract.require( + lambda update, context: update is not None, "update must not be None" +) +@icontract.require( + lambda update, context: context is not None, "context must not be None" +) +def on_chat_message(update: Update, context: CallbackContext) -> None: """ Entrypoint of the bot's logic. Handles a single update message. @@ -37,23 +46,29 @@ def on_chat_message(update: Update, context: CallbackContext): The Context object provided by python-telegram-bot """ - msg = update.message + msg: Message = update.message if not msg or not msg.text: return - linker = Linker(msg.chat_id) - text = msg.text.lower() + linker: Linker = Linker(msg.chat_id) + text: str = msg.text.lower() if any(r in text for r in config.REDDIT_DOMAINS): - posts_url = helpers.get_urls_from_text(msg.text) + posts_url: List[str] = helpers.get_urls_from_text(msg.text) for url in posts_url: linker.send_post_from_url(url) elif "r/" in text: - subreddits = helpers.get_subreddit_names(text) + subreddits: List[str] = helpers.get_subreddit_names(text) for subreddit in subreddits: linker.send_random_post(subreddit) -def on_callback_query(update: Update, context: CallbackContext): +@icontract.require( + lambda update, context: update is not None, "update must not be None" +) +@icontract.require( + lambda update, context: context is not None, "context must not be None" +) +def on_callback_query(update: Update, context: CallbackContext) -> None: """ Handle all the several types of callback queries. @@ -75,7 +90,8 @@ def on_callback_query(update: Update, context: CallbackContext): linker = Linker(message.chat_id) if query_data == "more": subreddit = helpers.get_subreddit_name(text, reverse=True) - linker.send_random_post(subreddit) + if subreddit: + linker.send_random_post(subreddit) elif query_data == "edit": linker.edit_result(message) elif query_data == "delete": @@ -84,7 +100,7 @@ def on_callback_query(update: Update, context: CallbackContext): context.bot.answerCallbackQuery(update.callback_query.id) -def main(): +def main() -> None: """Entrypoint of telereddit. Handles configuration, setup and start of the bot.""" if config.SENTRY_ENABLED: sentry_sdk.init(secret.SENTRY_TOKEN, environment=config.ENV) diff --git a/telereddit/tests/test_helpers.py b/telereddit/tests/test_helpers.py index a2c7bd2..7134a67 100644 --- a/telereddit/tests/test_helpers.py +++ b/telereddit/tests/test_helpers.py @@ -11,6 +11,10 @@ def test_get_random_post_url(self): "https://www.reddit.com/r/gifs/random", ) + def test_get_random_post_url_invalid(self): + with self.assertRaises(Exception): + helpers.get_random_post_url() + @parameterized.expand( [ # subreddit in a text @@ -73,24 +77,29 @@ def test_get_subreddit_names_notvalid(self, text): param( text="r/subreddit_one", reverse=True, expected="r/subreddit_one" ), - param(text="", expected=None), ] ) def test_get_subreddit_name(self, text, expected, reverse=False): self.assertEqual(helpers.get_subreddit_name(text, reverse), expected) + def test_get_subreddit_name_invalid(self): + with self.assertRaises(Exception): + helpers.get_subreddit_name("") + @parameterized.expand( [ param(text="truncate me", length=7, expected="truncat..."), param(text="truncate me", length=11, expected="truncate me"), - param(text="truncate me", length=0, expected="..."), - param(text="truncate me", length=-1, expected="truncate me"), param(text="", length=10, expected=""), ] ) def test_truncate_text(self, text, length, expected): self.assertEqual(helpers.truncate_text(text, length), expected) + def test_truncate_invalid(self): + with self.assertRaises(Exception): + helpers.truncate_text("", 0) + @parameterized.expand( [ param(text="", expected=""), diff --git a/telereddit/tests/test_linker.py b/telereddit/tests/test_linker.py index 62b5255..5c8fe78 100644 --- a/telereddit/tests/test_linker.py +++ b/telereddit/tests/test_linker.py @@ -1,12 +1,27 @@ import unittest +from unittest.mock import patch, Mock +from parameterized import parameterized + from telereddit.linker import Linker +from telereddit.exceptions import ( + TeleredditError, + SubredditError, + PostEqualsMessageError, +) +from telereddit.models.post import Post +from telereddit.models.media import Media +from telereddit.models.content_type import ContentType +from telereddit.config.config import MAX_MEDIA_SIZE class TestLinker(unittest.TestCase): - Linker.set_bot(None) + Linker.set_bot(Mock()) linker = Linker(0) + def test_bot_not_none(self): + self.assertIsNotNone(self.linker.bot) + def test_get_args(self): args = self.linker.get_args() self.assertIn("chat_id", args) @@ -14,3 +29,157 @@ def test_get_args(self): def test_get_args_override(self): self.assertIn("test", self.linker.get_args({"test": True})) + + @patch("telereddit.linker.Linker.send_post") + @patch("telereddit.linker.Linker._send_exception_message") + def test_send_random_post(self, mock_err_function, mock_send_post): + self.linker.send_random_post("r/valid") + mock_err_function.assert_not_called() + + @patch("telereddit.linker.Linker.send_post") + @patch("telereddit.linker.Linker._send_exception_message") + def test_send_random_post_invalid(self, mock_err_function, mock_send_post): + mock_send_post.side_effect = TeleredditError("") + self.linker.send_random_post("r/invalid") + mock_err_function.assert_called() + + mock_send_post.side_effect = SubredditError("") + self.linker.send_random_post("r/invalid") + mock_err_function.assert_called() + + @patch("telereddit.linker.Linker.send_post") + @patch("telereddit.linker.Linker._send_exception_message") + def test_send_post_from_url(self, mock_err_function, mock_send_post): + self.linker.send_post_from_url("r/valid") + mock_err_function.assert_not_called() + + @patch("telereddit.linker.Linker.send_post") + @patch("telereddit.linker.Linker._send_exception_message") + def test_send_post_from_url_invalid( + self, mock_err_function, mock_send_post + ): + mock_send_post.side_effect = TeleredditError("") + self.linker.send_post_from_url("") + mock_err_function.assert_called() + + @parameterized.expand( + [ + [ContentType.PHOTO], + [ContentType.GIF], + [ContentType.VIDEO], + [ContentType.YOUTUBE], + [ContentType.TEXT], + ] + ) + @patch("telereddit.reddit.get_post") + def test_send_post(self, mock_content_type, mock_get_post): + media = Media("", mock_content_type) + mock_get_post.return_value = Post("", "", "", "", media) + self.linker.send_post("") + + @patch("telereddit.reddit.get_post") + def test_send_post_no_type(self, mock_get_post): + media = Media("", None) + mock_get_post.return_value = Post("", "", "", "", media) + self.linker.send_post("") + + @patch("telereddit.reddit.get_post") + def test_send_post_from_url_true(self, mock_get_post): + media = Media("", ContentType.PHOTO) + mock_get_post.return_value = Post("", "", "", "", media) + self.linker.send_post("", from_url=True) + + @patch("telereddit.reddit.get_post") + def test_send_post_invalid(self, mock_get_post): + mock_get_post.side_effect = TeleredditError("") + with self.assertRaises(TeleredditError): + self.linker.send_post("") + + @patch("telereddit.reddit.get_post") + def test_send_post_media_too_big(self, mock_get_post): + media = Media("", ContentType.PHOTO, size=MAX_MEDIA_SIZE + 1) + mock_get_post.return_value = Post("", "", "", "", media) + with self.assertRaises(TeleredditError): + self.linker.send_post("") + + @patch("telereddit.linker.Linker.bot.sendMessage") + @patch("telereddit.reddit.get_post") + def test_send_post_err(self, mock_get_post, mock_send_message): + mock_send_message.side_effect = TeleredditError("") + media = Media("", ContentType.TEXT) + mock_get_post.return_value = Post("", "", "", "", media) + with self.assertRaises(TeleredditError): + self.linker.send_post("") + + def test_edit_result_none(self): + mock_msg = Mock() + mock_msg.text = "" + mock_msg.caption = "" + self.linker.edit_result(mock_msg) + + @patch("telereddit.linker.Linker.edit_random_post") + def test_edit_result(self, mock_edit_random_post): + mock_msg = Mock() + mock_msg.text = "r/funny" + mock_msg.caption = "" + self.linker.edit_result(mock_msg) + + @patch("telereddit.linker.Linker.edit_random_post") + def test_edit_result_invalid(self, mock_edit_random_post): + mock_edit_random_post.side_effect = TeleredditError("") + mock_msg = Mock() + mock_msg.text = "r/funny" + mock_msg.caption = "" + self.linker.edit_result(mock_msg) + + @patch("telereddit.reddit.get_post") + def test_edit_random_post_text(self, mock_get_post): + media = Media("", ContentType.TEXT) + mock_get_post.return_value = Post("", "", "", "", media) + mock_msg = Mock() + mock_msg.text = "" + mock_msg.caption = None + self.linker.edit_random_post(mock_msg, "r/test") + + @patch("telereddit.reddit.get_post") + def test_edit_random_post_invalid(self, mock_get_post): + media = Media("", ContentType.TEXT) + mock_get_post.return_value = Post("", "", "", "", media) + mock_msg = Mock() + mock_msg.text = None + mock_msg.caption = "" + with self.assertRaises(PostEqualsMessageError): + self.linker.edit_random_post(mock_msg, "r/test") + + @patch("telereddit.reddit.get_post") + def test_edit_random_post_youtube(self, mock_get_post): + media = Media("", ContentType.YOUTUBE) + mock_get_post.return_value = Post("", "", "", "", media) + mock_msg = Mock() + mock_msg.text = "" + mock_msg.caption = None + mock_msg.caption_markdown = "" + self.linker.edit_random_post(mock_msg, "r/test") + + @parameterized.expand( + [[ContentType.PHOTO], [ContentType.GIF], [ContentType.VIDEO]] + ) + @patch("telereddit.reddit.get_post") + def test_edit_random_post_types(self, mock_type, mock_get_post): + media = Media("", mock_type) + mock_get_post.return_value = Post("", "", "", "", media) + mock_msg = Mock() + mock_msg.text = None + mock_msg.caption = "" + mock_msg.caption_markdown = "" + self.linker.edit_random_post(mock_msg, "r/test") + + @patch("telereddit.linker.Linker.bot.sendMessage") + def test_send_exception_message(self, mock_send_message): + e = Mock() + self.linker._send_exception_message(e) + + @patch("telereddit.linker.Linker.bot.sendMessage") + def test_send_exception_message_no_kb(self, mock_send_message): + e = Mock() + self.linker._send_exception_message(e, False) diff --git a/telereddit/tests/test_reddit.py b/telereddit/tests/test_reddit.py index 584429a..378fe3a 100644 --- a/telereddit/tests/test_reddit.py +++ b/telereddit/tests/test_reddit.py @@ -70,6 +70,20 @@ def test_get_json_valid(self, mock_get): ) self.assertEqual(json_data, mock_json[0]) + @patch("telereddit.reddit.requests.get") + def test_get_json(self, mock_get): + mock_get.return_value.ok = True + mock_get.return_value.status_code = 200 + mock_get.return_value.history = [0] + mock_get.return_value.json = lambda: { + "data": {"children": [{"mock": True}]} + } + mock_get.return_value.url = "https://www.reddit.com/search.json" + with self.assertRaises(SubredditDoesntExistError): + reddit._get_json( + "https://www.reddit.com/r/funny/comments/fxuefa/my_weather_app_nailed_it_today.json" + ) + @parameterized.expand( [ # text post diff --git a/telereddit/tests/test_services.py b/telereddit/tests/test_services.py index e788806..58f26c9 100644 --- a/telereddit/tests/test_services.py +++ b/telereddit/tests/test_services.py @@ -151,6 +151,15 @@ def test_generic(self, url, expected_url, expected_type): self.assertEqual(media.url, expected_url) self.assertEqual(media.type, expected_type) + @patch("telereddit.services.service.requests.get") + def test_generic_video(self, mock_get): + mock_get.return_value.url = "https://mock.video.url/filename.mp4" + mock_get.return_value.status_code = 200 + mock_get.headers = None + media = ServicesWrapper.get_media("https://test.test.test") + self.assertIsNone(media.size) + self.assertEqual(media.type, ContentType.VIDEO) + @patch("telereddit.services.gfycat_service.requests.post") def test_gfycat_authentication_fail(self, mock_post): mock_post.return_value.status_code = 401

    v=3m}aMHz{k_)y^&PbKKF?#7~hU?9l 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Ǜz78&AS(=gyr$ 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�f-AvcOC*&=`b8^xX||?Ok1- zz?G>IzksXbzg_|7s6nU?8N?xKmROq*+zXGEsEW~D5q9eLEOA9(Gz3t?M*Ie!F-}l< z(C!i*>RM@M9s9jBCheM}+lRBOGj#0)f5jXnD5RPwFN@}<8DVXBO+>kQPU}QbP@H<} zHm$J(R=_8S>mETUaRYz>^3D~)3=#7l1kwu=hC_2@MMVj!m97#cl0~lQ$4P_LL=0Qt zVXM|GmT6sN+Nl|Pn;G2)ng|6n9OYB*k{`yzd^;+^!tpmqxzx7u9W#`Y^A9BP@0Iz_ zzp=pykOnsj`kkcS*r!4mOaFsYxo`Ed!DN=etZ4m+r44MYzk&Ltj2AZC6ZTCuV`JF7MQ4x|ii+BN{HS9WSYVOe2n_{k)<2?0; zFbL#k!@hlMkPl5F2MHjB1MwRS_mLu(dXD!_vdg;<9~9xeO>9?0j0@LNWMZ8UHaIZX zQalJxylhC>*At)%O`kh1kCQlte|~uubM7jfa1X-lkaXHrQ8GLj)NlmTD<~*n)_e%V zeoTAe_29eb;*VnZhyyDjwlY9%VdQi^QROr&9=BqA2lF4Dofkv|1()JSvYf&=r14PN@jN7%0i6m9VZ7jK#}*SEiLXsU8-)$c2sxo zX~5j12Ew7gL~Wa_D0l;_wIl4^L3{rfc7}sesM#~C|Ag|(#KUU_V8MR(e6D-B zXRo-o$X~&`Cp}Ux`eEs4q|X~h9U-q!K4pa^9xNr|%RId+wAe;M&h+l`Hym}WWVCps zqi4m(ZYm^jGoqN+uCYkQ*@B1eM+SYEN%2JA7030h*<-p_Eij_BaH+S!sZ!9dB}(g# z3H1>73`}}pazqY7oZ2@r$0o=#ZUtP(CjqtZhUGSDP$b{z4d`GFic$Of{<_$~)8wTVN$@x(!OV++2?_4gtuVobtl* zGY|}8%cC%?WUUgAUki~Rsi&kuP=*sY2e1LIsgkxf9<<%`6#BFhd z;$=|s)<_0lqZoy#g~fu)PHnT^l>WImQAL%$9R(;GQAx8bKA=3wji!ofM}c$CEKo_~ zeja}!A`QQx=p-L2IVFV*n8q*K!thwp&2?;yYXJILsvUCAz5R#e%g;hT`!pltAg(AQ zmocrNkdU1}msY%(m?CcY)FcwmC|PH#9C+5`sDRRe8+rr7!Ga>3K;M9iQ|=%U3I>~* z4!3>YCfLlvy8oS{uVjn2ih<=Bk7lT9M~l=I`^ssL{Cu|tK9qc zS<)5oH{(@ZeUs77@XXY<6a<^!pcB?#kJnJ1%h`tq}VeMlEfHt%=`Q z0)~iep0p@{13EEWA@w*8KW+zQh0b~KlhZCmc6OSA>3l#ev_b!bhQ+x@r3fFxfqtbZ{ z&I=AB5|MyG=%Y{b$9tm>%T|G;qW9$RYE0?tld9rJ{oQ71i@$9NQo60tP%5aQp`m%= z#4g>crmx0Lrk^v9HP4vf6e0~j?n_U!*9hw6gDDxHBdiLarB-7}N_VzIhls-43*8Dy zkRlBqhCygjX(tCx&*Ozs)B%=Ft!Is(YM}^7@}e20ma<}@8&L~ePQjZGfq08yfLSpU{(fQ@w=z>7k*@H-|LEm?rGU@1XxC46<-#I*4{5wpoeps|*ts^qF^1 zc^~8t?7$_4JLwJf--f_0;mVcV+G$A9 z)`LBCU77z+`H8RK63MD>%97v;{nt*xzZ_n^Lh*?>N_6PS^s+xWw4Zlykc3TU*%oCM z5Y1UxU#!OX4%W$r7jLOoqvS1htB%~o3~+ASm%vo3(6mSXBeBVAlTiMXR4`zwaW$$% zJ0v9)aI(41^zXWH-wbQ_h|A?#6|5mjB{Dx+h?Sm9o@~K$LZQluhr+>jom9A>27Ara zX&*nnh)PUOzNZ-q6SmiIu*5Ja2Xb@A`w){6Od@RG^a-`gqD|_ars@_>BPH`JOm1U&1@^yOL?KDSxo{l@2uT(9Rq2^gVEs( zhC3hwx}T-!NGMsXNrELkYjK+&iGtf4=pepBU53z9t>B|L#5YSBb2r5hz=tPD&TQoU6HQ^>?)78@cI4A+x+lZpgkhJ9|Ryp#1s5T z;OV;=@mAXl^7HQk+NMZLiEZ*I(-rj#;iFL$J^|V#t9y2FXVR=AbuZE*dgb5$oKhxm z6UYseqZH>92HFxoPo7d}TsF<^XOO*C5So!|uofexZ+h8UOtUJ-j)mBt!+{Qs*GaJK zNo|aR&*6?gHbr7w<=eNoLcH{Ln9VWuqtMNjOWYzO!-LbW^N}I?BCr<~oFig4RBE5; z9f^Ii)-dyI!wT%NG8`al)~RZ&Ke`NGbt7nGllrC{QWzt3hVWcbxTuT2>Vm?Mum^~w z5Op>)-q0Hq7&Jm`$;3;9l?jX z20E^ll@;lo5F%C#2R9sPdfznfe}W9|b!8>A-v*$quK^Z8Biq#n!~Gj*gVzFi;3RXd z9eITje_y7bW=zn0aw4DdUSOaEoS)+^HeqED!$d6FkKFpenaSuKST{%~`u%;ef*-Kz z+1c5N1MY5@=^cQfh;`;@Z{1PB1EL_=;?EUtua>$&CbQTLFxvV&nR~{kdH{{U=rETI zEJXldE{|9n!>m&Cn_CaN8hlwMMn=XL%?MN>r7A2cIxpAzBq%oUrlPt$ostVgXL-C9!w5nzgzW{4{IdOQe>*|wSw15lxgUS$&8$eO51>b*2Yt3@@4p3YA^4r8Zh=^ zx-lUmpVu+Bsweq{t4wt7n`)BahT()$k=ypqC*y90Tm&Bji8jmd{cohDrG1~nMT*9N zI0qhSCK*RzdmV&uI+~z;)9}-bDoh{v)y5*ZeB9Vek50}{bwhOgs~O|>Hed6-Q3FQj z<>@7*TX@Z<=Vjc^y&o?neslWHfddWFxe}d|YPIDbqf(j_{ny_<{qPDM2-G_r8&yDu zRGGv>gxe=m`_LyR96A?JG>{oK;Dmd3V5~;V!xQCn#3D8v3@ErG-@!T1ml-8t$g{kz zaMz3BVY^K0W^KV-ZLMZqb#)p%e2}met(zkrJh+WF6b)*qQsv0V$WRHR_#+67JJ~2& zT3T{z#2wkaW+mg$go;(GpTn#kP#L6{e2jiFQ7&(69k0w!2K6Km7wJ+R=r@(#Wp4|w zYM-bS&9(kCIQ7N4b}h}HJNBRd6 zUJbrh-?{}DKoV*L$jb!h0;K5Ew_e)W3;7=8By~he!d9r>4e}jXsX>4&1l}h(w{8p4 zXrpU#FPsO0C$GJ^;fZJ6fpHCz zXK`g5ak2*Ol?>M3u^G={+6yqp9sLREp+HqKFqi;&gUEJ?h8vdJApUv-7677WoM4@3 z9{BE*-U52#+7^>ut)si?!6+!fsl0hh3U>^S5{xG`dXjQ5-N2B59{0V7^bwUcxdwMY zqd_#-0prJ6N(2uDs}5ZAhUF>4gU8KPv|IQb*}@xgxKz3<>S0s z3=&vNp^JY00)ZIuj5e+})}Kl93ChaF;u4Co(+@>A)wFoS0Twktjv!lfpdcKppXjY) z#1VVI)>h)H>x?zQWH9=~6=0pL%SUka0gXjG9HWyt}j zv0a#VNt;`ZpCU7J2jSnO7tQa*=OSSV(O@f+;BLTzTU}=z2`9gL|HS<->7PC0=d-iM z6%3;?8ueU3T6#?eh7Z(I2v3b+Tbtfe?1uV-gx!!UuLB;s7>Wguwe zl5l1I!fMz`@j?$FD5_uRoJ+~Vo-}X}i^TVhgRLzq#Qhc567G;!=89}@PEPv3(F z5Bkbh>lqrv%{mSc3g0&QxkF@vqi=tCvzz>fdw~}H&eqdVc$fM-7 zDnloSy#5l=;_I8gho33fGt7c z)`7RPN=Zq{1DAm!{BDzSRAB-)hzv9awAw_qu-Q7MXKm(=b8bi0;J~1fEf@%8>cXon z*#}K4&Sc4>Q@172a1Z6p;d^;kx`9#os?LzgAdsE*Q|D2e|jk zz*|56alZVLi)P&qbnuK+(APt5^HT|A^E}4gH3{;!2d*7PifrPgfZ9s%t0f?`(zss$ zzyAQsj_kJH!`6{;pJRSIIk*AhI{q@M^ZDwvYgn|Pc9WxBgN*zCoY$q!kcNTW`Si6EC z>A27H1y8Iq^D z)!1Ssw(5dh?3%B}0Z;sfW>{A!)>ofAb%4bKwb3DTrU%W<<8p2X>1YOTG5?s`d1wry zB%Md)66L2B^CkPwaYTn)`=;UL7xnDxLVZ66P(B5U7kU~-+-D`|10A^8^Q`KGOyF9M zWpq$Qs)6PzMs!~-1lqUsM+lA=G}Jg7P=T4Yq#q5r#>(_)0s2i z7W}$1($mjCS~8u)T1WZ2A``?$LAc>WGS`G&iUXWAedUf! z>&U!?88>h4ggoX7AcAG+AhwYpbrOW207oewYErJ*2`m6Mjnjs3bD zU80RvWq)rkH{cTqs(7G~^9U>7{KGTMc#Y-a(&VnD#Ez+u4H)fixOgJq?p@EjFG))c zzF+;LYkhxdL4kzcP-1$QSkmjd_95{Cu?+VTKtz*p@&f0}X>m)-2`U`*RBp1?c6R(U z?As)>ye-E2?_fjfTwGUGkZeK}pPURm!UJe%%ljRg^3#ff)2+IYr5TTaLD%lABD}=2 zh~=HkkRlW*EM*lHlX1o3FH~7&pm{^lC4vS5a6FNLQs4{v8cRx~2FeORF(+3GTRv$_ zSV*W9@tzoHbXH4fA_EnOCF;cm8(gm^{;m^M_??X?I;aCBSFe5{GS840KBzGS(K?)3 ziW+?a%5VLqWb8O}@WR_|H*EabaEjG}UD|79+dnRS zX6|8gt*}`bFMJXaCFlezp7r8ZI1kiJPIDCi9gwpJvHofxheF~X-6ybqp9ku`7pFL; zXBBRHbNRx-$B!RFs1vV0{AM;BE<}S;O@qUbVSueFU@F7%g9+9L#31Uhf~|=0hNM@0 zU`ba;o!pvml)pIMuA?3)xEhV{Kq{R{qC@NwiCShYQDnK>tEl+KcT8=1`O>e3?}ejo zy<$^SQ!DBi`KsjXv8*i5&^lp5!_SrZCh0QyV#7ave@1~r06lU!c7zNyS$Dr#<7^r` zT(U`2sBL_5_8+CRZpOX)4~KX`snQWUB(TeNRk|AQ(d?IFI4O;vP80=X~5 zz=fyF=5{O@`##mXD$J0tZ!|#)o}gK%O+W^SRyYI7`T?c1D%drlZI}F@mS{y4PGIh8 zRZW#dugW?{-Nvzoh7z^Tuyl)6Jv*>5sQV3%in2uUq0t@FRZzRt)TGRF;y)qcR6{_- zRWWXo(qGm-D#Wezai>A3bjNPPKIxy2#g3bocRF%qX%YkkN?5|n@f4PS{)|2W&~7tN^Ao8g68wez!^ggV zwZ#&i{Y2)Zv{ zXe^ojt9%B{cyG_4Hpo(!J@;9NXJijUl7Bq7so0<-i$HY@$fX<#`*H_hI=v{@ErD-c zC}i_S*Ike^op;ac&)1BLAx0*hJ)o;6i)V22PB-kiP4kcd=AGF%_G1p{2+@I@%l1eA zhVJ5qJI5-#Rfz79(OKuT{L7o^qH_lf3s5(iLl;W3{(wZ_sQQAbyn<`j?(B3wh+`J5 zp%T}mpQ7@dO}Sj$vQxKgRP8m%I2Hda?xqV{$SX(P-%N&!Fsf678S4>lXxY~2AM&ru zkF~!+s6Y%3+X-LZxTMSBzFxKarjAW?c8<0~!SFzFVXaU*hfBG zLSo`1;I(*@VDDEED~%&dqV$JepOdA91<{=-OCMme9~lc^riKe1739hPH*k0|J_C>| zZd^@VlaTh6%@ek5BLch$xBv}D_G9m=IV&ISlU{_BIUMz*8k#V1A_-*BRZV(CCFXaKLo|P0_*RhkWq3ECjJfk{yg37dT#u+YZfUr<8Qt4pY-0NV9um)L2a{ zhhuh7Q7t42lyr-)y-=5}5Erk6&iOBtRLgES>pZJ)*E`S?B#>q(XzUCk%K=miWN(Bg z8(0h5hJz+h$R8(w4FcJdKnV#l#yWWL`t@Q=o5dc0xG`oq`RCt4pbF_KHfgweDt~xpPUG)GCGU z!hMnaQMEhU#CPRQ0-FI#--Vm2#KpIH%ueU&8hX>zG#|i5foC0U=KjdKgEqFS?ZWCJ zM{sS;Yi=ZDd*hEU%6A=hWbTan8k-T`sH!oxhilR!hkS7dlOwOzbZi!4ZCgC`I(^^HCP_G`=9VZPtUmiNaz5{4{r1{mMk}fxMbTTZwNG@ z1pc%-H6o<|`%zF>cq-av4!5!AmO~{aH@uWtGVHZpxA3s;@_zAGTZ8iVL~CUVY20HS zOE#ICU#si^8V_#z3|KkvL2pslPdTSkbP?JI8aewocFp#bln}id;Jfh+DM`VzJfYU1 zIp_nQOq1-Y(1f4HJ&74!8oOPf@`AfgS;9%C;M}D)r&k#g z#}@(gghodF!PmsDUu65vxUOGUJcxYo{Fp{?y-%)VZh&*{U`;>2-Ga% zTiSYa0U;sP&a_>4Lzo_>*Cd4NMeDgCLM4SufLf?KvC*VFFl;iB4tw|NI`T3=Sy~am zAzGtnxaaln*Sapov`+OV$QANF0w5zUILTJDBHfaXp&LV*gHA`m@IYoRGzSug7#*Be zP=mgDwU;ZD`@#j8gdo_Mfk0w_VCLCr3snuZ&`v>Kws$r=uUN$#Gg&CQDzWnIysiCG zMgB%jMMQqa$eqqHF|k{!^)GI*>fhm|VPN5Xtbi*WD!a*i3NCaRs6U7lr)z4~eBktd zxRm%9$Cf*8(`8k%Y5@mJ0W<-PU*y*|yTIVLjYWGZPrNa&d&TyXG5+%*_BQ9+%=z~D zO)v=F?t)9e&VIon1JCRxcGj;$eKmw%(@x#nINF=T?Ukhq!46JpJ;z&uHbPM29IgvY zPrURYSv0vxT@t0u6Rx?TZhF~U7O82mhE`m#LmBbnRh-PlV)?%ya!Ar0k~;!xexl?b z-NHt=3*-o|1!?&l&=+X(dALSOs(W|_-rrf1(qI8LkcdX~$CEL#$Y~JwYOY1ajK^0L z7UtaPn?Xl74*v?mmzZrm7OhKrC~!4g*V)M_oaAFg8$GY9t=C$qec zQ9`MO`}Hs2TZDrLo&0^&l%%Ia{V>6L=V5JdS43e`_M1P(wA%$C z2mS_0CO$m996+TV`s_`+cJV?92H&rsqD>}>3Gl^w#>wZ31f--%C1WI%Sd=wQR}s-cgye6_Iayq6V-gh`JCl5@zP@GHZOXpv z_wl2JS8qcmEF89^oCjFCNhr+UOV2`|j1#0vi;7Aa^bxYX4_uF|mtY^vQMsaU&#D_D zasZbPaJQ+n4VU02dBQEK8%BZn%r%?^J8!#W-SoiuOSLaF+TIuwhp&JE=ZisLxW4n5 zPaHOl+P#UZk0K9H-5?*b^eiysO7x5cQ^Yz;PX0^hw#*-PRJ6?q1%36tDmy*B3?e5C zgz`m6Dl^zisw3ls%4KIdF33#W!2h)nRXQ0=P<;^S?%{E#^1ICPJ8E%a0%|6L7lgD< z2?)mfJ`Y#ZN1Z^l{t6M1`((wW*<3ixR;*gZGq47u!*E9ATGh;gRVp_@pdAa(7!b^h&?NrX~ZqsBnj=q&Cd zQo%sfFfXbA4rxf9%TdeI7?oFd-RD!}5Lz=#2lb_ih9-sf_d(x=f&s$-vqw26lksxb z!2fz_{V`6Oq=F%!nFIH*Ui~5ZjhP?m|rI_Si1t#P9?tNA-!pOx+tk; zYgTHr4&TB_2%|T&*fXYZF52mM_YZs`W&R2H1w@N}vE?8o2v{gwDSn>cK(-Q(hpTQX z15nQ#l@-k%r@^QIOA=6(JXy4kJ9KY;;_#GzLIB*M`v7#f9Y2Kzh8LEj?<%{gb@S(o z<%-v=)55a_t9BX&DErsNb5SS3mR^BY=?lQZv>;vmvH+f@*{AZC3)++|TOcS{7g4AZ zLpepbPSMJT-VDYB?z<{GFs4_v>c3MuLItmGSN06@rbD>za2ccTz>#nb#4K|ykE6aJ zJ3S1O7wzoq@bmfCpjr99=@=`Z(5UcCTDICIJvP}H`8QNNFchVQd~}ky@BD^0hll_D zbv+7WHU{Rm3yWem0|#L+u<45Z^W)0}<0F>?;Xr$4F?&}Ji3$Un??N_%E95>(<=(N; zH)D2{e*S)Hi~sdZ$ItcxN$qGZz1Z}`Xz*eb5CBy}tG+E-*<70!LKxq@vnQ99f0BrR zn!ex#sF*6-q^JA(`5jFX3;pmP`C`uji}=!aP3K&Gt*lf%e2Ka4(ql}W1a=WZPDP<1 z>6hNrgyu2a;)ROgAR2g$?YAB6U&~~f{C7e|i(e7)rGyg^%VjFls_+E9e}Q#!K7R@h z#X4VcaqHIX*u6UtI*W)feSkQAWAi4lVLI1T#At)02!aNJS6T~GbiMy|AdDa8Vp{q_ zXIROiHXi^fG86{oR|EL~4&;?WVW}3WDoYIg)tV&#^GVUtx4Jx0*C=~N!3B`Ak}?hW zCYd>D^!)o=NH0Kn7e6}R__El>7=igdXsOGfl*SWCnStUS5?v9-=gx4YsjnUn0s$eW%r(hr5Hj>HSI2&AbqI`^y(iJudUJ>z-3EfDHkyeTs_Kig z3H{h1hzWq(wPC}qSh0d(-hcc!k--LFV~A!8e*OG?%($boy1IH<)pW{U=V=}W8G0Wg zWdx5hONHi2fJ4XAU5`^3cL5tiNo=Ic*|R6xprlxyeX%?bE<}sV-Ib=pCGjBUI)AWQ zwuLTerj=&|^$yw{atXdH@w|QWH3h4nCjakMa+k_gH0)=1jr1e90<&eD&Gh1hF*Q3N z@$)NxEuYF$<``@#5Hd_I4ZMQpb2pbHL*kbz3x()uwfVDcf_rdoY9)Dh?kpODW5hb1=tL}n>)30%qq z&YcSgkOEE({|&LYD0sw}RITb=5Uio3^uzJC7g(a}*vLS|ktN8pK&y`xIf2|0O>V_M z`!c#CU@WD(O=S6`AT*02+>h$&^j;YmYR%9(6<7H-EW-ba);X0J+%A^L3wVhr88iXq zDlvZmGL&6JiZn#}yd{l0+LKm~C=fR}JhWn`Yl^aP4tfqK)t+>e{#-@Z2C;;Ln+m581|A4);$%stFc=Hlh`2Obnq zgCB(g`AGzwelVt?qP%=5z)c)cn4U_%k-WlK_2&OlqBX_?Js=l4f)KCC%K2cu-p9g0 zLw%veT_x-Cty{;BoK<2a0&nZm&TK%;kH<)VqiE4poVN5w@>c;903&1^tjXH>+nd>) zst(ehphf23of=weg6t%m?=N22HrZbPQwy+{tJ4&1Uo#`Ayr01*#rqVT!$X zwb;2qLicqn zAqKf|OL?iA#R3yAeSJZsOWnE!(By=U@jQ@BU%d?dWr~FwQRETvhC+km+>LK@Y`VK% z-(EwFcVzuY_A261FM1Y7wvh4Jh!~-#aIx=HmnN~%Z(_HF!(9$*p>4;@h((;Tuz$56NB5H*y5y`GHBt1t%yBa)KVj0 z+leUx9D1D1OKdfKUEky_7Eo>-;qDBJ+yA3&Ktg4xVt9$*>o23{j#{OD-pbyIVu1{N zShNw5GykLd`q|Qc?e>|!#~YYGbnX?xv0R;}Mi$0b+646gh7-DPon>6}o?pz=F2*lW zWcKDnp(l(t+844C_pL<!l&#$9pYOCPb}o;Kr`n>MPIyl4fPTr zYe|4Q%a?THLd8_;O~%GCikp|)&V$PrGVIe!rvXvM%|qE?aOzLmqy$YVIgC*mTi~Q2 z`4RP*z+zhwGQ}%>gNZtB+dZ(Zp@UOw`dZ@L0Ih!^;&8iPnbE zs5)q$YWt}D@G|6+qN#LSsl0g0Y^~SAeb^biGq-GxO)iZL@te8f#OzO)O5%e)d$V}d znqzA@;$5415ziDp`!JL#2hfVsc-#x;^>M}jF>MnnY&ZXi)O8fJq!IS&k3O+A4}BVR z0rMazCHoYOMSVln{7;;g@uFGD<)OzpG@^J@V?N z6Io+ue!7Ll1n8=u1UCn?JWh>Sf?98Nf{AZB5MLVGyL$&j>Qa`KO92v5tBbD*ek0fX z{sa%?8`xR`c@PD$M}Q;T6mTBvrfl*XTEvn;YOaByAraRX+R$e=ARUxE`A7vS$B{1u zmMhJQ9tl{=aSC`C>$Z)8eF4AiqtEK#+ zd~r-yg2Uxptxs`1i{$c0wfnE&aX2DAVk&;&JuktK5AwRxh-*Y0sMoD~zGJFSq$1AG z*Bo2HfjoqH083|4v=|DSlZ3e7 zVj(al*P&UCunXg0Qt+b{5=5{C^Z}AeEEV6RuHgd}c~D$Y3fZAUhZqJ72qo)btNEag z*wjXjFkAK;A2|Q1!Vp;m*9F`Y6T3j81ki&(k2rzBAg3u<xt^7Z;%*OF1I zk^mGY_63R_Hyheq5W~jM_-(ArE}l6snD9g4gA;||^6Huzg2te#AZIy(bqUizg@fbI zm5mTNIw>GeWA35okVL>KS%^Uqu7)^T3Sh_&;J+{yO=4h-frH8tiw)9``NH=@^gcnB z0lJ>VzsllK0b$!bAohbm;~pphnMz9=8-J`lI3F>__n;3X_MlVGy zlZuqUAoOq`oDt(fijSrtI2vttr`Q~xrQMqvpSH-scKa*cfklN-?QZIq5EFCA8+fcK zarX@9`}q8P9xy6E@|I!yU-KptQ9)`AvP8pw zbp~m$1p3$m5mUb+Zn)k?b;)*axudhiuU(q-U>wzWfXR}q8U-H#h}KEG0!;^pBJ~!) zJz^w9<0H5BnidBIX|LXj%n22iq=&TlcqjkI-wI~@y>+&@(2drajY0iJscg^+4y1^4 z&!_3?hK`4xlSW0UQ)C_>XFw)fuyk1b|JBXdwS4+DfzvTOPSB{{enk5+^1&bW%d0zn ze8~T_){}v|KKqLw%?uV^Idqv6+IKXh6`~?~{8ZUuuQ~Oh#IKOk^6@5b)g`f_o zC^*tf5&9W+_W*9Ly-3bth$;fn8APuM3jornI}Jycw#yo%DsZc7CaO&v{4Ww2m#}56 zqWSL=c@25gCAG@`(gm3Q%VK5hgS&*z@Qbo`^KgUz5iE@e9X1BFJ@C(|w|4Jwd;`B^ zK^6AG7H8*zI_WKCwjemSNde#GMsR5r)PGJ0Aj5sU7nGg+Vr4TPbuz%*YkR+wflY`j z3IV{3>#I?bD;vz##5tfmV!T1-b9;Z9qiel#zK%lYnQ+&9?PLL~R!;5y+We<4g$8t- zITxCYCA&RKEfz-cy=lu9pN1pXYTmEBM{S|}CwKv}Y1Bn+t9XES&bcova3FBfFFebggkAG2A+;hpG^QRu; zK8OQ01~i4naAZ`}MDLqdQVaNiyu(bA>Eh|)A_vfhG9DyKzL$B2a_gGnr*D0KDr@p^ zi}vY%LQO2u|Gw$g^5Fen)g4qGf?1%j!`_?N09(}6r;`oK3iaCc{QPoa4&a7_g4pA0 zEh0(Vf(hwo(x-A|?Y^a__1k4A`f-Ym?*>%T|FOVjrj$&PMK5DEe%9Nqy6R^_L7tBDY1si!pkXCXJ z94|-_A3!1#H~sr*|8 zA|&+YLwh?#J)rpE>rTtrq>Z!r6r4j4Y4QzfaOobgd8EDoeFFa>ymrf)5;PX;1FD7{7EOd{p#i%c!YE6r_Q)aD&Ob>Y{8h6`C>4pH|${tu*`}vpX z9;t0qxSrnDWgOYMXAS(@P$yv@*{6RAJXKOM%XRi=&FFtpeOYCwEpWK6;A~0*mPP+E zfBsbPii{Fq46<-0+`PE}iDBbE4{R{K3-C3mZ$Jc9xfQWxh_v?sKC&``Dny#MfL%*C z7nzH})=bdZ=&i;z=?8F1g6dKFeSzAScznP|@w-brcu^ZZ-?`nB!?pgJ zr>UqWF6XpA7#MlwOl@7k2R7k9TqR&pPeWsWX|2-)xc10QjSOc=t7;yaszCJi^yw#& zK69R5VFo-1%=5M5C9+J!Ff^Pr*|t4#j$Ui6T(obv|9YAFtuN#)qhF!A%1}5Pl;x#= z=Kz|5@|WPzh}VObJ3#$7ZUTgM#5Ju=WNkV*CseIU&QPH+O*==nC@m=NpyU{!YJxC8 zED*<4m;3WXK*k3UoaqR8NqY2)pYcTJt2UMmAvhM&V}CO+g5TtMft}Ias<`Y$4!!kB zT?!AnmvM(W6(gR8I3DCm$vkp_cBJIfNyEiPjd>XO44J8%&812uvo}*W*bF4?f3leQ zdqt#cSy5R@+8}5?Tcu$MqwHUF4%q|ca;D%>rz0PTLaxE8@GZ>Nz+Qw$8O_e=J?C>C z0hY9rwq9gz*9Tf$nN05l(Om&; zv253OG#wRxYlgdacA@*m!CCqCwD4c7JImc-k*?;~v0rchemy;X#Ov+niEB?zvUqAd z?M;aL1C!FP$t{;k)}#oBO{uNB@K|aqoEQSylUXWTrrfoOkDQk_V4Rk8{K!MLv#~MX zwn*vfvx%@-&E{1^V9V2zr3YS4efnVaAdqf6b7###_8`@S z9~1dGv(0d(0slT*I@+Jp@uqYmyylo?bb1hJaulSq{0Yomd?4iKfOjtFP%r|(nz&kP(L3zO(vXGewF*BFdqY&oVVWBY1x3Wu zzWr8K6eqj@EIi^R6W&uA3BC+9i@2h3TBWg`^2#5y<*iA{%+xyI;oEf3@*{gQR%f#` z8dF9It0rQ4A(+yRmb>eLi=F`rdbhcAwdc^$JAKtFDKQc4=44EW{@UF*3#PnztETH( z`3?ojzMk3;^(mnyus@=|-+2k*Qhe|pEJ5DmUQex+c0}I>od3DC3|Wz+*SX?5S+i2P z@jViYIa%K_IO-$BD^JwerS%9m#-2#qAc!{R=qjN+8)li5RBl7^_C!_f{AXx+TR(n0 zP`kme>s-vuJ+5N{M{ayQUNbzcUglfy!waiCmwb3*=4U%)c%w@4-m!C9R(4)X&|REI z%&<1_`a~p9^c9tkXoDXY!cP!}Tk)b;GGM4(h4#_E*4-#XoXW1eeg3a*AA8mm7vi(C z*mI5S2$DH90o$OO(^OUU1yy8#2yL9#TVZXEvp)v@IvR-!0848?r0qjurZn8y&=~C~ zT<6>sj$n0d^yPwh1Fdi0E=34H9>g(hOR=H*THHUURTsemgYbhDtM@jCc3&FA=$Czv*VUDHy5qYkawB3;8{f`x;_NvNDBDD|&17jLL8N~X074Uhm%@OheV zj0gIg4*ynHSGNzn)nTw>VFLw8y&`u~`mR*FryneA7@NzDTYwv`6nZ6oez3F5U@&sX zpb#S>?(Dwfsyp}@2(%hBH{o(4wMVp6_TlJ`ueDBu4QLmL=~eI?MCc}{s>9Lg=LgNe zG=|`&@E(5cXYi%rrG$^2K=j8lxK$Dl<3ibyzOW|`>gjbZzg>jua|Q$UH5>&*4T^^F z-!~iaZc)LhpYWS7uPv*NX=n7Z^tbz`q@?(5xYJ^4YFbfMRn;MzEJWKg`GqgwhH;~#vI5Wulz$G}QaFji(D>Cr8&m;TCG!wM3d30)vN9bBKg=h{ z4)SBR-e>bb1p6iQrt+?}v%h{SuJ5A!iYC4=$v_V4Gz~hoAGq2JSf3b@a09d+`MG&BDioGqUuzmE#t#tJdReRB=^W2eR}I~y%p1gesHCB za>CI4c~v=`-K&jn%*tG8YFhKPf3b7F^On(JcR3KU$ii9)OvBx$-?rKV;n+wO&;F7Z ziEKwv?Zh<=IrF6U7zsvnSH5&Su0Qn1InAv4(M^Moy;YOyrxp%bo=h!iHP=rMvbT|( zAG+>;UNr$>-1(<hLIO)snM>eC~TzW&g9@lLmU)4fW$>NyML6nzE^TJ(=^&w4y> zxU?y!@ds>Rv$;bd1UF6!#Ii+4Y9S#sig98R;YJKN!e zis6}GFCKaDY{ub{j(@+%8ppAejU(!V?ncLLhl5c**I}AGT`w@lcQ|=o#ViR~8Qw-tKxcpdC0qXV(>qIB=-I8Jk!Zq@nwdIw26gYPvJ)Vy zrZ7YiGS?xk1}IEi8Wj5*K=X_CSZb6o*J`aXx;{o$zfgD1Goa#Z-= zkYAyA-MDzDxLpjg7F?D#vVL)Fp*NANV@>BRGj>HhK2$gew)~>(HMT`XuorfduLJc1@kws#)- zrM*~3b~VwA$9- zfMnf1-0P3?bFdL-Y|KV?Y zE-Bka7Q?KZx*NnipaFVW?3{7<^%abk!GtQ7dl2uR3j>mfnaCFdxD3m)@-BWTg@{zc zF_OhaNl>66&W;U?jV=Lf9^P)-rD=BStC-i(yceJak!s_Od4}}S0bfyyA*x`o?$dqN z3CX8D+G_M?QAdr|YRpR8fHg>@rTy`J9@OGgE0$VWlAHktn?C z4@u=@^Cp!+bb=@&#%E+gda*K7e>m1e)2!53+q842$Kki4AE5dSqHeT&)oiCiJ>F6( zRD0r5{8NFPr=YBDyyrLMivkV}_^`>qh*jQSHasgjHtCs3%huH7T&fB?hb6~GHyf;e z3Dph9u+hHsp&tXG2(8<>{tTZpBz(N<4kuC}Q~wRKJLfa4Jv|QZ9(Dyol71WrI+A(n z-+PL^E-_l}i2)^SOK}KR=i#(a$E8ax0Njeybdf(FMwMzg%qr;v@}lPCln@kdNZ>Db8U z+4JWMqeGL1l1yaf$}kuN0?wX2%Y=aBd2D_ zSdkz$pP~G!Z>z(f;bLrm<~4f51A6T#!8zITnFj}-I6t+vT$zKyeZswt<4MWv#vo;H zFd?97Pdgj(dzG>jz9bk|_qjD1&&&C`nzc1hrhsY9@GE*t{-XCflP!_{uS+*v$)@wp43@Qh;I9P*aT&>?Y@CZgSKK%S zS{EfZ;rAU|9)w6bGdQ6W>?H&b!z0DE6t;qlkT*Dht#I?zW$s#S1GFFPt}+Hdt`wa0 ztP{xHN-2;C8n6yc_NFY^JUE$-LuT|INL3^N>T`Y%A=|1zl>?XEf$Nv>vFfr+);JwL ze1Td!OhKUZF>=Pko)?0fbNQR;bA%p3OT=E8Sb*9AA2SM^_(g-y2FG4DjWp6-3r`G+ zEJ4&0cOZJhyxn{my9OPetwettYCE$COB_1ALlKEmt}w3gN0Y!jDBO6p)suY?Fc z91Y;*-e>eN5VvD zSR%bf^J>wZU>$ACF~3!h>IU{=+;!^y>worm{r#VRL2Gv!7c1uyMf)BdTNPOE$-jVB z1Z=f-{|OW>5IsQsS!jN=zXq=>u&BjtCh7nL$?Dy`n$$dyo=6qxbTSrVpGd(m0SoP3 z;(q0w)Ab6mF#&W;g9dyHYAbMU!GKu>;Y@|Zd(xLL8{9wL`Y7q~{Sajmkl_;WFRa2x&dGqE86xsgv zU6db@JP1U=Zvn@{*KN@9x2fT1`&d*gmv3Sh~=gJzJo188ez z-FNNy6s2G%ykEA{jfEt3b+0u)i!RxjnjS=qJeyW-G@7+_V~=Z?jO zgm@!NXCfSZYz$tA08}(nITw*$%n4_LXw_;+NnDQ~CwrygHsv6YqzID-JN+nru%i`z zD=ghM2mrEs?>v&DO?#m+Kk4ExA7X4BA0D+A?#_v^UP77Ua0KjJ<|%lDMk?chReX#! z5O(@u{3Q3NSrG!ch!7<88Afa-*16e@evnJ~xv1@rJTI8|clv?b5XZaN9gMU>vPgl; z3favnUjVMOLBA_&BPhPB(rmPEKFMr>?)U`<7rCt658^5H#~AM08Qs7V&H*;#d-diy z6AB3z`kag5j+jIQ!Sc~h2}1m+14vWl*0^!-eb{#ZWnZ(`7+?`#7;;e59=GX$rqd*y z9_nnM%+8}nWpGa$ew>4f0n7m&O!w~3P%mBQ%+NoP)pcn#oS~IC6IZU9Ic*w@kKSEt z10y!sk-Qr*4qfWX21O7$J%IA}z|%{*vJjGBCf>exsagk~Uc}7BKwLh8D_3gvD;geW z(?HuJ333ny{g@wp=bFwBu+GtYtdAr^E~*B!Hs|vmBQ+e&)mD6qTBK9jCSAq*MIg2S zYA;M)Oh0&2el8CW*|;HPD^eTsC4LJBHNs0YgFb2}2B2mNQnfr93lBs*3Lv2rhwO`X z@pp5rA~&ek-*>sNDht9!x&AyYK~ua&s~#@D)EV|^URIqY2a$b=Et`BqFk9B^NUXkR zS5(uk_2hH^&#(9{^qmycM3!BozAXf%Yu$2Zo&2#+f#m(FcEK5}3@K!b*O(_%<<`gMjA$XJp=>A`F&rcqlAEARtpu z343}a`?pe*?s(R|fQaAac#W*2&{o_Y3&etRodFxj(mYYH*r}UM7Y1yduROTGGLtjI zm@o+XzZ5}&%}L@s#C}v_Gn_}K*M>GMI9*d-9UV3xHr6*IKK-piy$dVCy$cbL%!VJ;j)VS( zh{S+crkBpOl_U7UEpXYBBNkOsdPJlmSO+Lnyn};-x70NXD<~{R89}ObxTx%890fgB zIco>_)p{9TK4bpZ%QdWUxqv@qyV|77Y*&1aJLH=i5R*oJ6zc0K>rKAsMuX$QBk7JK zdMExFm26vpUK$F{sX&e4*i%97Dm=cDG}RLP1NzAd;D5bQr9UQnjdYty9e%Gyjz#7R zxQ+yz_*CA~Glm9c-1dty{v?d&j1qKj_(j4wNaEt*F~cm~pmdK}aL}NRc!x)=3NBq}s;9AuM4e6b^eklfP1)NmwIChA6_I*_bD@m2PEy~; z_V(zWO9--`NeTNzso{vn(orE30FEU~xBxXue7o-9R3`x=avexq2fvb>@v%aU_0!jF z+*qnwYHXe5VYhkkq#$S+kFLU>;*}(eiw>9Im zz}leT2lUs6-jz*;$(ls};3pXVD=SfqmE*KTo}e#e7Viog_vn{2xgs?2ZZF#`vuooc zuVCQ?;fpSg1}dZ6X3u_6@=#D*JbSYz-}q)p&Be?v(xmdawtwAy~+-(_BkK$Iw^dASYcXiVtNRFE}SM?=V1U=OQMt4AYtdKk2u? z7%Byh3dZEyJG`{@Ia>6e1P>TA>qLD@gFv~Ae2dW3QSyl^N{Hv#rt2vTnsDTuD!&02H``M5ReB9k zXec&sK85tc8Vt#uKyn&nSJ^X<40-iJt8Y^QK8iWy#oAzGRc93_0 zdVm^;ux2?ilc5nkV`EW#?+Yk_rZLfS4l&T-?u5)*6ovQ%CFu2+;)t6A2$F3nvYPW? zY=GqJ68768eEoI+9vU%7N({l31TcJCLEY1b54kY#co)JEFSuZY8!8xo^mNd^Qp*Ug z)`59SEKfo=kzDBZ04PQD+qQD2d3=@$ z4>pF?BcjQAoM1X#rDLQ;N#1HuJnX{^v+6wT8^6=1m3?-S#tDcKPv}|a_g!70*mTuy zrpFgHZ>1O`jp)Zu#;FP0<9AYww>y7MD`br=7ySKt#IOW+Xx83gwQ^KRMNU8XLi-nh znaN+RX!?(U`iI|s{Z+x^tKn$3Aus||vFbg@=wNg@v+n$Fpe%dIqsE>8cT_gPqd)sc zDPY@$V!?6F&^*s=oop_{@2QogZ+f(TuXBxK_7T;ECdX0!DkEjGR$fPcikQP<+^o%s z#W&{SbwG@0R6T%ANUn5eIWs%V$FaOTB(IBQ0Dl)q@ANs2CyH6g+S%4NfNAW znD>lQYRZ@E61A8s3Ju63^CsH?oBH&*%v+q>MI&q{I^{j<`o7rXRN z1(ov-bZl%4t}`8>J$vBnFOzGUz7Ru?8A?o|0U;D;Kr`1-?a_RA!>2||WP7cJO>Kqy z6}xcqlgk9Ur6gypdP3MQLpu#vaAl$mKFwp@lwyOTAH@dkmvoiQ7TH!`OR}rODoiry zx0++SNBZ9UU986et60wspViY?ddBI-!t*dOK%}^-u|N=XJ|M>UXuVRf1D2rA(V&Wi;5d);gyQzbB+-w7 zd_%2Rr&+)KWgvTvL19=W~Mnp3p2VOptIjJj{E|A=8WWM+Vn zfD4)$)VX}xCOwKC$0u`hcU}N2hr1Z&oU*1kF2hIg9A_<_(0Q+Li$cR(dZYD||NYrD z2Gu2jGi}8&OtYmZff|Q{pTGYms0{M7ao6o}eK(nEU50u$tJ&!oOn~J_*B9fB_$T0+ z5sxm~_D%N2mzl`G-WGwgeGZbokxmCWJO`dD(iS#Q$_@Yp@=t_hi$>_8pY z9_>Jq`XWMnLEu|bLGkhOvFA`Lf@w*>ccYx6w{O3EsYUz^8-<&*FHu|sf%?{*J$Di6 zHIX6Efehxjjtz$nU(NPFD6=4y4J`Wjw*T3cAQTrj>UvkLSV3CPr{mbA(^H_XD|3C$o~7JGkf%CR zX8Zd1?1fR#t&R2%8lJM27Jg9uM(*plxD8EgY(!ujU|VqFSF*Z$pOetI38^7H40O6} z=!IdTb}y*Avi_Jj^8C(2w2ZEKWtdn^>9ThKGblt8e3UPAiRLi-f^SxWRvr#e9NGK} zf*c3?+Nse&_!;HDpeM;G3t06vs~ZyrDd7YQw>={Z&G3{qwy&iRH=8M9(U8%K+WVIE z1*nIRTM|gKQ_ysy;Mk1wiZMsWK*-Khw}$y(&p#rI1tLp|O2?fwuAGIj3KB17*6>vL zTPRx!E9eVCgxi3l8VN~V1*U`pAnVHn9*3(nFBNeGO}&Q|?1q-25}u_X!0)G)^>3Gr;GJ8jj44p`qMUWaS}n;%n(Dd{B=GddxNHC~@6p9aAU$*zHjiQZ9r9NA&# zu60Y*PLN+ya%*!QVvWgL1+5{XJ0GA{>v~@!b+mqNGq+&6HeOElov(qZ*@GAcgwrha z$+{CiZnikP3Ab@BlzS|ApR0ZcwFh`vnTw~?TN2h4>VXC8I%}yOdEamd7P%_k84Fog zUp}tVTJ|kCRs8L(E&F!;HpUh0JF-&RP6@uXYhLQ$OYco~&sB*L+?BFrhM;swwJ zgbe&5FK_Iu2ml$4zIQ2JZ$EIqDc#rQ+Z)rLu3LS)Zy%D?Zk7F^`Aj`e$QwG7(`0r6 z4cSpB8|1KFxBq3IXFV%Q`(ob(wvvZs(h_;kjf;TWa>H}K!(H&ORXN0%i%*{ltL5^|gMGJv}38G`g zDM|xpfQwwSy^88~*V^=<6r}8tKMQU_m;(*oRq*dq1YD|$<|Z^E!m39{w6^h^K|5c; zz73HEuM4eE!%;jWb}$@6r_gU+6p?OD$jE+qo=ew(&=-sWc+s?1N8xu2DP*O2K#Hdk z=CuB32Lo=%u6(nB6%d_>7DdNTU;Q()fI!aMIN$wi$KKkn{#_T)E}8s@c{g(Q@sqlb zVxNC8c=2+hpl06J&szUPn`L_kxbsS=EJMaW_OdlZ9$We#23Nun-hi0#(68O3mjy{Q z8EHJZE-R3o%n^DVFRDOPB35VkKQGD+;6(^N_ugL<=FEY1CsAIgVDKBhDg^!@p=+Z| zHw;M!Kuok3=x?=Gx7+vww;ybuyKiAv^)kgHl?D<1dkmw$luut1Ni-tCj&j5GT1Vz^ z-x>MVOw*;2GP%F!P}kkkAMFwZEr1h5#-n4;q0}jzcJ7(ZK@AOsl*=&BQ`~gn^~D15 zP1o>TJUZvsuhrasVX>me+Glq0qNy^xMF7@*4Dr?e;;OCVDTNx+?yQnZ`G==E#;pKVBA{VuIU`=&aOI>g1$ z*QB%o;21=1Qsxr5B56wO0o*x$(x=u)|r((B4(lME#TtQrPThO~x5+|-X zbYJGErN^U1AmS&I8w*bLcTa5PUL0%|0R9OIf~Ni)O}#?_zV_IsMbK&mRuXQ9L~P3W zrAc_8dcJ_H7g%bqpzryo7GNpE90E8&ifKTa^ha?|)+wa_PF|99h8TYN( zN}*2u>sQ_;64};vxcpSn2{MzsAy!a5zhvXV-tU`!&POEH!8l_++FI z{2b%l@Tyq_BQIjq#?ZshhB*Xx>jk)baLo~6iH0H+Cy*MR%c2dgIv`2}@EZ75qF^G$}xd}$X6Saz^VUq}q*pk?K>zdFTEZ>LN-{rNn zx{TVseTi__o8hDq#;Q|oLzI3bbZpfaXP5}VxC)6NCwWs89*m7Aez+noHU2^+=+;Dl zLDhH5b&j)VEtIl2gX$E2bVoym|HoQ4>BwLy1hcqxOG-%OXtY0j_)xNW-4P78vq7#s z69VAv)`^i~k8i&on4pAxk(|y6eq89I!nP7SW$LeZ-CCB$C702`_c9 zaBFw19jmD~71=Ah(oPiA1e$i&KN_g@)Hm>+XxfOu!(q#1W*ywhKL;z&+ zI}G7=dkpHdoF}Y^q~_4#>T$(ws(-1MQTu0Gl@Iq^EM016WF2F29jf2zSJw|s_%f@xPE~xpxqJ81RBMD=O9JHct z0pnQ%GBWIZNYBu3t-xEoRqXGIJE*b~QA(-eR>Tm#cx#f#H2eri>>RVEb&_DF_m57qr!im0N(0Al9i=jY@;>Gu}>%_a~=4vG#Y zRPq5*t7_WITKE%EIt3`dKsk*YhK2>m;edCD86VX~iaw06Cp?((#(1bDfXvS3J%PTO zrv4C5L-*5lVAhB&R8FW>N~k5~_onBt93~U$W#uDGIs{pM0D44w3$1G>V2A&_XD7jq zL}^u^DmEw7G7M_4{}15O4sg6*#qC~Rk85#r0oyKewU20FifTeTR4ondIr4N3ULJ(t z8p-!k%ssRK0IsV5*s~M-g7w43oWKz!8kHcId&7OL)(dR(T_3u;XEHZ20Gpg^OhnUl zT;dZMGz^$zhp-)RL^RJH9(#V=2veFBEC(m(JROAZM5H;@|04i8#v5h9O0*w6#NktX zE3gr`xO6`awvTb}Z+K~qlK?{kQ@JFVgx(HI+sj??f0yhwWYQqLz=o4C($+TJ-|@wS z>P;OCFUzlX(Zat>Wey!XmUBJm+a*aK+?uA1sj_WS^GzGwv_B*jo;X@-xDj*%i3nXX ziw%;pyG+)TZ(pTgzVJV$9Q*{*>ZJ`YTc_;L;}Y(zf4odl_OZg?)*h7{NKPzZQ~*6p zgShe2=f$45QM95|IG|rC-WX zv~8{BU+>`lB^6!kQq=VD)kZYHA;e1n6f($A1Z0II=emBC+IqQ5?{#0dUc?bq4o|04 zk<*dc)03T}*L7)Kg|(i|)s=JCX6<~1;%rn3`bHOjFD}~BpS74S?D(dDf117g9xj7H zj>L5MznP2AmCcrVeb>Fw-ew$dnj|}?CtZG*U)Xoi^sKOxICu~y#smI@9qWd;G&EbP zFLvCXCH(3~(dcl0cZ$}IHzba9Kphl^`KrHvdXPu3~h3SnK*u;tl3&8m>e45A~ zN2X^CHJqn#SlynAf7*>z&X9RtRJ6Log_I^Z7o{K?@xa^(S*~cO4}sKfelzNe z!!%Z;tojdaq?Rwjl?0`y{`KUftClI+X^rZxudP9=1;T;`Ffy;r$~=yig`qR+>OK?O zH|IVCZNbR?GRI(fOkWj8m>4Cv!`fgKi*W2aa0o)-BFdNpyQm)Q{+qm!^7Rl%)o!dG zCc#i*3WLD%9Qy>JE0`?+5|aE}9T*P*j*4bBEQQk+he8?jL=*59DO`tU`2wQko;QyS ziEl{*LF^5>nbXJwLk%jD%NsC0QFdkcuR940amAAWPioe&KGCiFdU5+2m)}@dR=3xr zMyw!fSS|y{U2kD8Os<$mZ-5Dp{ylK3S%u1(q;+CR!xy4m1xGu8soH3 zD3tbvRET02QA*miGE!8^SPD`7UQcEi#^?LT@BCqm>U7@k_w(G(eP7pgU-y4tJo{<( zRcUudvS+>}D-ne%*^U_QicDk@>P6So;TPrx1Qos8s`I8euU$+y61Kq9-~rrjiLjYP zT2gs2uT_clp2GSm&J%O$TgQeKjy`zz>}LPzZ@e0wU7vd4XkqkdE1wHdu`PSr;D(qVegqwQz&m=$iA+Af}CsI-UJk%Rv_Jqbj&7MUw z!jtsQEr_#}6Mez-^eB7)1aH&vBCI|I=PI1L2@=9lU&LZcB}v=1Z6%Zb1_Xsv1ITPT zfS{+j)(17HXIKjq2uU&cx-;QjI4wy+b_er(#bgdBPT}=Wm}3%ecPhPY(*u5_b5Vc` zml=ga+?k5~C7GSD$VGzRLe&5WeAk%|ws>&B=}n@?lvO3^l<^djkV>pa+CV~;*duTU z_KF$!d?mJs?8}bq+P~j;dHYVC1j_ZDfUOvTgm zEfgsln)sGa!}f&=74CDw$OpnlS#JSz-KnO< z1Z#;aX;NRTTS-JxW2lMBx2xoZs6@5|iqMs*YHb(kH~Dn&-~Qb^(|`ldqLV%@gF3?= zA$RTl>q;}^_F|)>A8Jj~ocjg|op3N7H?H89OrPW_Q?n3J#Sw^>>CKB0DHqfTJK~#94M8DFKf!)hfTq}&n*HGE~A1bAaDB}`DbR(>|Wcp1>?NAm&8#F4HSOU z3=`Z#!EpsMjOI6&n)lFrN%3<|U#ohL1%PMRGtoBp6hUSg`NwpKzY%6vzT^|P72=?g zY!}gF3-Tpg5jf9&1<@`eaT5;9LZ8Lm5JC3NIotj;If;=fttG_Hj)~nWTB_C~1 zoi-Jc-Rs#FfRaq|6F_<60S4Pd9U@tVajny(S<|KlF-fW$8WXbvvEdp$^S^)jIziJc zC~D6A@Qxl^hm8Bv&BHd*f9-5Mpr#Uj#K^!{%iPp{jvU#22v;PQzY4|Bv)jS6&GCQt zjyjb7&N@_f8JWL$Y(Yf7e{^B@8Il)Q=onZnAD8SH86U-ySdq6mvS5pWS6o%Q5TA{K zQOnEv|=i#fp^GeeF9Jne{syoBn%YXK`@9e;FF1Xc1HZwSFIPW3hk` zOo=pXGla^f{~H?;DmhjGQzzO09&N*uNjQ}<)YdZCnlWh8UiiJ@Y+gE*PHb^8hh zjARlnZbEjCpVaTTE%CEgt)dg%5b;Saw*jP(bqkh3h!w<*hVi8iueZ~$4y0e}CcW`{+-B9(rLqJROW zR|zQJp(X@vF#ilx_HyuAByoo(xM+YGS=SHW*12=5P6IoA-#K#%zE;8x6pCx8#;)P- z1%C0~(JceMA;R&`x>k5Rr$^1&J#XK>m2dpQGwxaBHXrLjcn} zAS0h1MvL~DIyq?&U{0gC&^s3XqvgO}3!ZCc*}E_7uV^)U&Dm9N<{9RNsl@lkjRs=~ zlAtc@Hf~Ht7ekX)U__VB+cI2UXxWVjLgm@qkbgGVU*)bMHjUgH9FgO zRA-4Q?qTCLzdD6?xgpg|8&_s^P2vibxHQz({rj&(o26<~JT~R#O%Ld?n}l+&QEkD8 z5J<`>FD*|V1%;vvkHKJXK+Q+Jz6WR$uLLy^2o81k)Tz?GeSehPfI92n@5GoSU@;8v z>BMBk46eS52%840Q3*Ex>Sc~rQmlFUw7%Y`sc7y5OGhWC)PVgX;%-uebWogPIx=*g zzJ5P8z4&A*H$}T3<*eLt$NvQzM54eRv{Lmf%_}qQXL4uab*!6>!zot2m{i%`$74Wt zd>a6GgKKmbhcZEp8eq5Pnjrs*Eajgw$N-2>-DvyRUby` z9Dw9pG-R~ZL#vLEgfS40Ry)i_$5q~u>)!n)cCeO#=_Bi!)>u{Mk6NU$pA&v1%*W_1 zoeI2tf0|LH9KV06`tz4-!3Cc_f39ZX57Q^~{iG^8cM7mc@*AYs%3kIfE@96u!m!Q~ z8DpzHC>ml|A+Lr1Z>v54e$O&z{2&;0uhrjk(np@Ubo`;FWolrx&wNMk&E537pH@(c z(OLQ|RONj{;V%W!`9G*SJ34;j+OBn#@jpOH*UkrUF!)B2lA5X?KhF04ud03i$`q2P zFrz~9i7pbEpWl+cdGA|q#RMkF4eDvnI)n#8CxkL2?7r0}Qma9&M|X&{b8zTxY@FYY zd^`B<)4>zJ`$IfkXJ=#ivCki=n$|@OS5oItYU2tGYHSjvRk4uV=QlEj#Zwi(UGsN0 zaF4X2I}<+WsXUe&Z)+*~EWt^a>gvUuKKYHNw^6>*(}DzF-*x7?eDQ|n*n+(~wa0L~ z5tD)-t69GKYKyIrv(FjZR_=eFBQ4I&Q#UVXsJbTQjyB)0KO)tIuEs%7Xu` zGD35ymr!+H;{!6V*f}i@!g%$0O=4bG2Hahf`^{?G(*dez9Sqo$~&S$vfdSKR(XG&Ons3mk6KwQfpB$ zkm+#F8Z0!XM?5k%u8Rf@K}Ked0BaHnOFs2j>zcsQus_D2m_4H9+)WS*LhpZiik zlt&sEC%_6DX=j^gHuOln?k&=S%U7L7Klr>ZrSO~NmJ53Khrxx}WInJ$*U?>#Tz#vz zkXDnEi6%kUu!#p_Mor0Z-0Stt?Z&iF%?a)Mo=9;07;6Z*m8Ey;aelOasWl8b&9km- z3L_IgsPsE`?pU6TZ2Tgse)gXWg?^`Au%41hufOog!{+HJCQMDMF!a> zZKoRCjkO2Qs&e8!SxRg;y-%WWgalNqS@RPWtdKjKJ|Ng9yFNyapi%^N%U2!wC>H>eGhV$^RB09{=4qVezcv;s!6lV4>+Aa3l0Dd7ab`+LIVDYR z49kEhidk+Hy;@vMm}ea-4k7BGkx+~Tm=$YuX8*rBFB{$!R$*&}gf}Fl`EF_AjA^E| z&b^!W-hSGxsJ)}^i=B_VwjXYN(=xcc&?4c=DbrsR)h-5IkAJBvJNTE$vU3B5?~IF$ zH!(DxT}bhkhn@1%4y-uTYSp11??%V1ihH?s%cX~} zCuBT7y!MZ^Nt&6XGjw%zvrkOh(-m6?6dISh^*fV(U?iN{Y{a7t%-9?PRMmFcrZXsq zAdm)+A75nQa(PQ!Tx}Fxz)VRP(O5owYo_^rtspMmc*lcv^$%J(KVNKWnA!U`D@kz` zSwvlBuzyw2+Do~l7M={70`Ix0rsVAR#^6QT?}`jYHrG{_QDyM6O^GdPOv3Pp_n)j7d(494; zR#jltRr%4Po6rJ&s_>%Y86nhw@58L*CWGOoTaQ7GNCoS}xa3jj>>06SNDtAo`g+jg z3lAzQ2h-hjGB9urftPMde=zM6-~vOL)U4!@67>o%sJcJ8%o&7!7YtM%L0H!=UCf^+ zLTM%nPh>qkBhsezHNbSZf$8bx+wtOCU@;L$lEgL}5M~qwP`FihIk}Ti zP>Fc86kc$M29rL?o)0BGNyRvYZLIF28c7FNlX(FJh@F&0OCr_e5Lr7aSCXN_CPBjP|!3tZn-TU?pGyZGYegL3U zOkkqyv@|tG5jT-e=ut6vMMtl-zp{N>&WaK%UBlYwUOrpr$Qac`JBoWxwF>Xz#(X2i zkePmVfmKn9>ec+oQ;Dg-060i07&MywkP@D%gN+0Q>+D%lsFK85~rkNw|b#d^C z)!)V=AxMrXvZ0kLsi8^*!n6v4R2B%nF__bg=E+mN_w3u3C)Cw7HKvtziq6RfnQFnk zo(}o)a^&R|#jhTI`+iwT#+a%4c>ea=vX@g{15yG-&%U+kZFyR}=}?*<@FUBD+&xk_ zhn{vc_+B#E{hTeuC+~(K%GF0=E7~%5oK1xF?x>*g!uz5_E6KUsL$j2$-u`tp&ZtML z;@!YJp%fRvjc;#eV?{bc(?e9w)NLWeIM8WRodpA4^TIMm@PQ(}F)^s}2NSN?NV z#d+Vbl!V-=)9mi)oevro=Kl8U9JyO>JEjb*{YMMnumX-yIv8rZ)(V6)nEnL|#67a8 zCld~Pcm$9Y;q$iu93^)Ca(gA`>jnjC16NOIe_k$kyZ`*3i{>uZGM@3_CSJA|?*Uyn zzV7A^M2y|Lc4Y$fmBmgd4!s-3#LsBJLpcS7nyR@HiR+$@Jyn05y!e$90opJh9?$>WJsr!ba9<3ykYC=ww7bAF{AnIej(CzL7OYW6g@gP=}0^NFk!I>98}MN9BOOC(8f7)^2Ptc5?JEA z-|p+LLu`xcs&eOZgrfinriB-kj0qjz3qeJM8Bk@z*4D$ZSVYA$kG#E(cdMjrD?CW= zsIpFiQ(ai@D`_Q|sqZKYnc}8=EG>mYvHr z*f__q-Usc*9uEE>7FjiOptw$7aoS>%2KSvRQ3D37a_Vf@9J(mswrRJ%2Xc=3;zI#sRI@VJM=6bzk3< zHCchXgwcK(B35;&Xr>#{L>qiBVRTmRS4*koRc60I@s*2Tc>C&#h{cbF5suey-16nR z5)38wQli~)X+j0$p5igE7XTm18l1`zIIM5f--}L539wKlI?}DxOtkr+Do<fX?S}?hpU5BRMg1c_l~bU7m$@?ZEEiA z;bE?=N|R8i^0nGEwMKibYW!jzs+lFtvB|;8Az({mgPYl%OSScCe?)KN zy;epgn^#7rvzbdrttEnA9DM1{)lA1@Cp1_0s7wX1%hqpm_JwsT`(oc@ zzqZ9$$xdJVb3@<#*Y#>{xI?3rFQi#aZ<^F)QYJ}h%VsHgNJEj0dfPGRC7N~C)6F(p zWyFY6)2%_pb!2$prCw`*GtiMGVG!nmdxuO)*YwRdWLmT@dlI=UjW@4Ntn=nuM=^PT zSguQW^q!#N{Dg9~{Jz%;HAO4#+yQ0ZhrVJ;s8olQHOQg(V#O*(q2>!+KcKD(XAXgM zJ__EG)nR?(_f#K?vx?Y%QrVQ<-?jqpfnUXf=Z| zOBc+acLX5E7#PppJW|{6*`#TXdSQpFHwIKan7qCtx1j3#-L~)7*t=U|nF514R7a$b zxpo+0M}z&zb?a98VhM5Gy>N7QXLi5W_)?yYjy^4jL#EBEI8j>l2WA)dSN^bM+bN};a z$bgE;7g#h4w65R1yHw;UyLT%)Xp)lwG=$A7s!-^9*1E{3_7&olA^C(#Q(4!}o%>!L zG324(2}Mt&=~Kl1;qZWt~`;yX(T;}U~P`7@lsGi3|U+L+e0D!#%q z%xz37y-{i(9o6gkHZ8|VVQO0KffMbn=M}RpARSZaU5Mn>EIpIhf+Q9wy0~ z3gA4C!`C|LCG=Z0)e!a~Xa88GqNtOA?DYJ|qN;(MwVa#&6B-@`%*?;FxX){7scJsL zLTV-gzmiVjY4aUG$;wAoTa7HpenLiAURfE6bkUOIhqu|ybBd&f(rLb=vWmF}C?@Jq zC|Pm>dY>i)&!Kb8)8F5pnsMlMr~1X_8)^F0(Wj?D<*0v=dz^EsU&bHqFMlo|R1VMq z$lMt1Y-n<`Q~iUVQmvl7u-c^oA zaA3&&h**E(0Z#T7R1P$OAIgo}vwOEb<^;mHu%_gKF}o~_G&YA*qWr;wL7JKuuQld&e_rk2MgF@8oQrBbu(l9{J7?dSu0cas z_`swaBb^hS>YrRQn70L?x+g}b>6&v3HVrV`w6$P8bRcE$%!H=%VuY(74HkmC&b?(U z5}C)^N4&gFGI?|+SFb@Ih*Z$E?U*qE%`@aWOF^Bn*F1zGxw8S!iL|$l=BM|xyB%vW zU+00mBqWXFzr3t$zE%FXR5aDG6qQu!DOayf5qT&6B(dlLUNhX__oatznZM-2 zVO9KV%8K>&Utb>jE)ATNZe4tC9uF@vD`*|LQ5 zx>2EfY;xbWId_-`rK69gFS7nHR}TQ7*0HjRZUc;LdW6cTbd+ZQW*yXCsy#2dME zz#V+h*4f-{VAS68Co~<#NA^1Z)#XSV1OiU5{zyfKhf?g8H{JMIip7~B0&?-tU)T^Bh!pzhz@-)hy|AU1lIQ}7ruq~W z8lBJL4hkv@P*1>JoKrEeOBbZcVj&h4kd6aLM2tvk)%vS7IOL?Jr9~93_`S3L=BSI8D6SqOm!x%P{Gts zuV1}7r_tNsYK`m%8@US2vnx_$MV2L;(KhxXAm9WPOCA}yByl0tg{L(A$hi4#X4(mU z)wHxlkfqO{gVPu}VGfwDY0~Bel(ZhwIGd7%B8MtzG}=&tYiu+Kptj6!OM?ZoY_w%4 zyaM3Q5)qea(6hi0gh;H^X!cmc@P>tW1(5ScQ8eg*+9swS8Za1|QprQ7ljdKOwm;Q+ zcB8*CpC7Gvxav{KJ)>D}<2(dB_OI8m$@mQAP>5d3ANF&hc?*Vg439#Mf(eqb?O(SK zQ2?fs1=0a=UdRff0ch=Aj~gaeGQ9!%d=_Rt}xNM~alu z4=00yj0TtPj=F%4F6!K4m)94@hfJ!2>p^b|?!vcz$f&0pf5J@ym*aS}@B4QqipY?Yzd9hpQ&y&>G9;z!*u|y{Y^)nWo`xX2csgocuz=0G~T$st)#ePOKJDvrtr6W)5!sX z#L-8w=nd8oel>Ki>CQ|q;Fhim3Z?<0Nvna!Ph!lKliIuJOpw>n=LpcM$&BI)w-77n z`1Cw_wC47?R+o>`09{28HT1g5 zYdOVAQ!+BR-rGg@0 zF-@OFw83q+_8;${Cu0uF6J_^rB*nXe!#~+$k`NWzjviHgCn^3)p!#g_K^htfi_P|q z4{bkEqv+kKX_x&J^k)rQgQPlqo+z_?aZDqn(T`O4K0MV=J@RpHKz;Q!w~rN{?)C7- ze~wj+)qN!QChymLwi5a&>G@SArr|MXxf!&8N77# zKgv07)h4N2h@zAb+XkOp%en?qN-La{lvPyblbM3A_GiQ~nufx?q}f{LHQt#<4^b}s$U+t{nMza?2Z@2jcI@Ux3Z&-@r% zK7I9m($SplZ`%~N1AiExgWzxD(lZqO00(-w{(4JMZ3`HWXGV^9W&>{c!GBol;?B%a zh$wN)qcI!u(l4M%tILOEV@zWAu3ZBOZdN=b^{TRsKT>e(_ZwgK;p}g@&O3-_uXI1& zN+JuS4T+HRDCnqJ$E&v)c{d6v{SLYNd4_ov+W$JV7ZFl7{nQrH0L2ZK6`Muovnhf8LpzciOnDYg_}=7ip?a7&jGO6m9a^&#=oFz!4%2*M5!FEAh(?P#|K`{J3_BDx1`mnyJBZXv3!6R;iQlf8U&NHXBF!g2Fh$}mDY-|XU7|YB zNk~##x_R?OAxwqWHGoiP$o6jv#G8xLS_i>y15V&!^nr#@!Id|hok2$yjSU0XJi=8` zbfpn#L|G1KTc8lU!X>@z{{0tJilRjH9cz1{{4IFPBT!EcfMw?oMZ}!}Cnn?0&|hJX zCPL6$<@-t=QQnbC=(C~t+He7pjLuJtan3GPkF(c<-h*UR$Dm)U=~bC*h5f!Xn$wPP z@2CT^qwL$bCfvL5B*{aXNPAj&yY<+Ghfrm?0N~|X=8x!bIC^(GTiRa2>8GvsbFR%~ zGSbOr+MA+Ix!CDNr)DU~kpZ8a@cKa)ac4O_WPymmMQ(u14Y)IG-W$n1OQnDy=bfJh zq)7_zPWojpqw?7kc~qf8uBnrB%_ldd;pjN3BrEQ|_vAyQQ;&c@^?6M2O5#8#Bnrqz z&>SMrqBwd4+^Ek@CRW!y3fLb8&mq!pDPu_I^Y%tSZjWE5I^Y`9M3^VB+oC*VNDcs8 z9jRdzBWANGsqH~?!zmh(9UJlkqV0*r4`8HC=KJlgk#xZlA9Fab1a6DM<51` zL?Iw@zpbyX{^0536FQN>cb1@;g!n!@?-FviD%2UmD8fQ`_N1ld(4`$su42i(-55EK z$0T|u+q7+4&1vha=@`Rmv`0ES8xvI#;`Q~#MqQ$G+>&h{0)h0bgJNJuFVhmRR3mwuptw$2bbL6-_j!^Gr}Y4x6FV+xjIPVZyd(XB{- z1T{($G@tsk=|%9wP(pL6GLraX+=MjoblI=xC1|_DLjnEz&dG(_8Q) z#8pc)s^Sg`iC5g(yGziMIk7gBFRr3MsP0|SHF1m8axRJoZ&KZu$I zFNT{7xPuEllVUeS&yfuuV4b%zJ;&M(PJw8-$)cvgB*5Euh= zkk>}d8_(5Evi?scCXxIkyxLyS6K=^!9gTJOTt&eHG*tce^>g;BftlH#v-9aGDafV2 zFJ4;7KY#1~db+5jz=2q*Gt&JhE~U6y?G<%);B>p6S0TJQUnUfuQdU;rOc#x;_gHU< zc&t`f`xq=-=#>35EZ)46T?G5>tkb?o=WIW9`@F;j^PZ03v);S)AIw!E>4iF0{6?6L zhYjo?!^MjuIH&0udJn;F!TSvD!%E{KVuUP^tvF88<_zZ=>%$5tLH2lf*U@JNPJezY z=F-H6q|mZJU|hq{IWttdd(>CwXVi|3j6A;~@lb4FU|?|_rbeOb1}OLT*OGU zYvItN0tF`89zdrMPTI5P_g~rwRuX7osK^AWX4i;nRc4^Ce}a~mn>4jjtO+^H23m9x zbSy$IEwd^8Jx;YEiQ_O;AtOEAkf#MHscU`b)bFa^2s$gF@V?#kl(gLle^fEh4F*$p z{0B5PaQ#SmH?wiUz|b;a&aK%dVGGCpw6Sbh9DK9^Y7Rl#UMP!=uaG@pxB@4g?z{-8 z)}uG3;Sx#57dlgaG~k#`pjtXV@{Z;8#g7~Q2LL;y&4r3DjC2TDJ`Bx`0IKvl9Nz2i zbxRQTy}r3JYk+RE2*I3-QXO)sq)IJr>174S1P%WC@oSyKXTipK)RCO^!)E)aPQ$-1 z4`CyYtbyPNWKI@vCEmYW`+(lf7pvQXJ1@XCw(<*X00xa6Ych0U>}^CLxtN2CqfBfG zpd`a+zq-UjPFuxIm(4~h4IEgF zzhgErD;LE(Aj1us+`%lx35Gn(ydYE^*~U_4jd7aWzkOw^lXcPYc~?cnDAtC_zG*XN zSfO!4XB3s?`(GuK&^c#kXRkWq6?tCDnW_TZBQ`6)Kx%r|G(`VX;AyxkW<9!j}>>I!Ii5jp#Y1XA~*k)V5!J6-L+-n%c;hrU(CpGlowI^|-NgQVn*W zc~pjvt46FlEa=UF2abM9JxMO7`^-{0{168jfqBGz=WcapeA_6*jT(YY!c@Z&8x&o0 zTVr9pfLaGc+*F~R#6TH|3&J8vvG(V3`H&-KJw`7*yS{JKiss%ZP_<>{{&ArgQwY(< zD7uKquk)OmYlnS`>~ZbO#{7pMlSu5B0L7r}38q6tTZR+q37iiX?q}x9-w;`3T~f&c z@-$>yT0)eDek%7*aVHIz!#uCE7i7Rkuepbz95ELFlfRFA=Ge>|OZj@-u+QA1cR#1{ znHb#im59%Tw&EO+jl~L+#|ek!<;zbXY*8qUzu+z>ej@EN?=%K0N{akJ;;xsLmg+qj z&P)g2Y+b#{-)b`vA)tWlwBLx&YBRCxr}d=7wF`Wt1>Ww42|)m? z$Y)N@e=`T0VdxAIO0O$8+{rZ};3#~b?S4cnPjqpkAVcyDN48EIr#9Yq_-EeN14~dV zjuMefFREMH!wnbA<2a#(qd^PkUnYXcCzOMG}U*QAl_| zy0W-;){ajwf$>#ay-z4@1)3@}H8lT|mKa+!|E=wTeZ0Khg~N25%XLj^jtl;3}qzwle1Z8dt)agR6n@95R=A*oKpuR zcOHd!F3y0FOD`><4uLQi@RgV_4#;pr)nQD$aY6C9t0w8#0n8}b+T19(OfZ44*lw=l zLoJ)YDJHoOh*A4AiI?12_w;_tlr*fqJk5Ft0haKW;@q|XN*9DLmzJ_33t7!^YL;qT zRBg5I!nx{0oQ}dJguoj{a}N8*2}zG9d;0Mf zRGLXm4OSw5<62}d5Z$a1FhFyWy=0*TQ$pY72YK&iaTI4k6T;_esYe*!c zFQU2P?q^ZEi!z+@6oss=ICaQ0I$S+h2^Rh6x1_|27l$;zp_%=Fw2{<+(FZJ*fu84%o&zVr*6|u&&sx%zq3RoQooo>kzCr2?f3jSZR}rLfWTcVW^Bx#*nnvCc zYo|ErGr^@7_4>F*xMKMc%Up4_JqCQahW#lpe8?79mrdE~?CEd!U%hz2s^vs4t&85a zdgV&PO?n6pBI3&kBAh$xucu85V|5wsPAM$T@eD||Tvb}r!e@l-UXEG8$FEbO3j*LX z2c2aUVwAbCZ@v?^CNYPUUm3z{{lj2LE%03U&Y$5G$4d9L1b7bC6$Nq|sUzk5vf(Gf z8~?^|%lFy;OFqEVpNUZ%#%Y$bxEDda)r~%+on`NC$CA(84(vKD2QN`jU9l6b-U+H8 zOU8dy-8mf~%(|#I1<5TIoq+raKe{sHGoFVJTMh0VchGU5v0dj-DS*r@x(4#_sd+)< zP~jk=aa9D6@*@lj)`E8zI>6i}OvPxi2^H;I`2Fyb1wuGB{@H2kZK7d#&O=a#I;L3*VQ?m+s1;(SsOJR_29qk#E5O_VV6fqhJKWq-M|6PDUbGKpRe8XGX(CJtT`s7)xDUd{ ziLJ|BrZG`T2QV&+35A~2cJ?+c2n~QD@*3}($(A38W&?{BG3n+1J5CnoZTDg78dQ`A z$Y4dz7NL#>uN6AsdUIX)d{iKj>Q;H@MtyrM=zpL0$GVA}C>rj4tk%B&O_!SO{~OjM z%nWlEnAW6{ssBMFBsu-Aj`%4F4~)kz#tLA9X}wbkTE?Ke^BZW3HGqG|wf+dmBw7j@ zAdiDlfkfV1X)7Ld$c6u|VAmo8VhK&WU3>Maj;%LcAX!8;gpJc25Y}f;pV}_yEq=6W z^heSN@lU+gDF8$XW;WMs>~^wjaJ90k5#lR3wvYcC&%_rbCO`i7x>~-ltj&K(l$I~J z%KdkJwtPWiwCQtI%XZWi#yeWRBc$~#M0HW$egb1lB$j9?pyVZUt&w%2uD7-C!4I6> z^BJCPU6I+G{^H$S6Y1h=dE5W|aoO}U;k)I#{(mmFx$U&eE|ERde5Q)G(3z$;HEQy* GU;ZCLYm-g@ literal 0 HcmV?d00001 diff --git a/docs/images/dependency-graph.svg b/docs/images/dependency-graph.svg deleted file mode 100644 index 4fa8412..0000000 --- a/docs/images/dependency-graph.svg +++ /dev/null @@ -1,931 +0,0 @@ - - - - - - -G - - - -parameterized - -parameterized - - - -telereddit_tests_test_helpers - -telereddit. -tests. -test_helpers - - - -parameterized->telereddit_tests_test_helpers - - - - - - -telereddit_tests_test_post - -telereddit. -tests. -test_post - - - -parameterized->telereddit_tests_test_post - - - - - -telereddit_tests_test_reddit - -telereddit. -tests. -test_reddit - - - -parameterized->telereddit_tests_test_reddit - - - - -telereddit_tests_test_services - -telereddit. -tests. -test_services - - - -parameterized->telereddit_tests_test_services - - - - - - -parameterized_parameterized - -parameterized. -parameterized - - - -parameterized_parameterized->parameterized - - - - - -parameterized_parameterized->telereddit_tests_test_helpers - - - - - -parameterized_parameterized->telereddit_tests_test_post - - - - - -parameterized_parameterized->telereddit_tests_test_reddit - - - - - - - -parameterized_parameterized->telereddit_tests_test_services - - - - - - -requests - -requests - - - -telereddit_helpers - -telereddit. -helpers - - - -requests->telereddit_helpers - - - - - - -telereddit_reddit - -telereddit. -reddit - - - -requests->telereddit_reddit - - - - - -telereddit_services_gfycat_service - -telereddit. -services. -gfycat_service - - - -requests->telereddit_services_gfycat_service - - - - - - -telereddit_services_imgur_service - -telereddit. -services. -imgur_service - - - -requests->telereddit_services_imgur_service - - - - - - -telereddit_services_service - -telereddit. -services. -service - - - -requests->telereddit_services_service - - - - - - - -telereddit_services_vreddit_service - -telereddit. -services. -vreddit_service - - - -requests->telereddit_services_vreddit_service - - - - - -sentry_sdk - -sentry_sdk - - - -telereddit_exceptions - -telereddit. -exceptions - - - -sentry_sdk->telereddit_exceptions - - - - -telereddit_telereddit - -telereddit. -telereddit - - - -sentry_sdk->telereddit_telereddit - - - - - -telegram - -telegram - - - -telereddit_config_config - -telereddit. -config. -config - - - -telegram->telereddit_config_config - - - - - - -telereddit_linker - -telereddit. -linker - - - -telegram->telereddit_linker - - - - - -telegram->telereddit_telereddit - - - - -telegram_ext - -telegram.ext - - - -telegram_ext->telereddit_telereddit - - - - -telereddit___main__ - -telereddit. -__main__ - - - -telereddit_config - -telereddit. -config - - - -telereddit_config->telereddit_exceptions - - - - - -telereddit_config->telereddit_helpers - - - - - -telereddit_config->telereddit_linker - - - - - - -telereddit_config->telereddit_reddit - - - - -telereddit_config->telereddit_services_gfycat_service - - - - - - -telereddit_config->telereddit_services_imgur_service - - - - - -telereddit_config->telereddit_telereddit - - - - - - -telereddit_config_config->telereddit_exceptions - - - - - - -telereddit_config_config->telereddit_helpers - - - - - -telereddit_config_config->telereddit_linker - - - - - -telereddit_config_config->telereddit_reddit - - - - - - -telereddit_config_config->telereddit_services_gfycat_service - - - - -telereddit_config_config->telereddit_services_imgur_service - - - - - - - -telereddit_config_config->telereddit_telereddit - - - - - -telereddit_config_secret - -telereddit. -config. -secret - - - -telereddit_config_secret_dev - -telereddit. -config. -secret_dev - - - -telereddit_config_secret->telereddit_config_secret_dev - - - - - -telereddit_config_secret_generic - -telereddit. -config. -secret_generic - - - -telereddit_config_secret->telereddit_config_secret_generic - - - - - -telereddit_config_secret_github - -telereddit. -config. -secret_github - - - -telereddit_config_secret->telereddit_config_secret_github - - - - - -telereddit_config_secret_prod - -telereddit. -config. -secret_prod - - - -telereddit_config_secret->telereddit_config_secret_prod - - - - - -telereddit_config_secret_dev->telereddit_config_secret_github - - - - - -telereddit_config_secret_dev->telereddit_config_secret_prod - - - - - -telereddit_exceptions->telereddit_linker - - - - - - -telereddit_exceptions->telereddit_reddit - - - - - - -telereddit_exceptions->telereddit_services_gfycat_service - - - - - - - -telereddit_exceptions->telereddit_services_service - - - - -telereddit_exceptions->telereddit_tests_test_reddit - - - - - -telereddit_exceptions->telereddit_tests_test_services - - - - - - -telereddit_helpers->telereddit_linker - - - - - -telereddit_helpers->telereddit_reddit - - - - - - -telereddit_helpers->telereddit_services_vreddit_service - - - - - -telereddit_services_youtube_service - -telereddit. -services. -youtube_service - - - -telereddit_helpers->telereddit_services_youtube_service - - - - - -telereddit_helpers->telereddit_telereddit - - - - - -telereddit_helpers->telereddit_tests_test_helpers - - - - - -telereddit_linker->telereddit_telereddit - - - - - -telereddit_tests_test_linker - -telereddit. -tests. -test_linker - - - -telereddit_linker->telereddit_tests_test_linker - - - - - -telereddit_models - -telereddit. -models - - - -telereddit_models->telereddit_linker - - - - - -telereddit_models->telereddit_reddit - - - - - - -telereddit_services_generic_service - -telereddit. -services. -generic_service - - - -telereddit_models->telereddit_services_generic_service - - - - - -telereddit_models->telereddit_services_gfycat_service - - - - - -telereddit_models->telereddit_services_imgur_service - - - - - - -telereddit_models->telereddit_services_vreddit_service - - - - - -telereddit_models->telereddit_services_youtube_service - - - - - - -telereddit_models->telereddit_tests_test_post - - - - -telereddit_models->telereddit_tests_test_reddit - - - - -telereddit_models->telereddit_tests_test_services - - - - -telereddit_models_content_type - -telereddit. -models. -content_type - - - -telereddit_models_media - -telereddit. -models. -media - - - -telereddit_models_content_type->telereddit_models_media - - - - - -telereddit_models_post - -telereddit. -models. -post - - - -telereddit_models_content_type->telereddit_models_post - - - - - -telereddit_models_content_type->telereddit_reddit - - - - - -telereddit_models_content_type->telereddit_services_generic_service - - - - - -telereddit_models_content_type->telereddit_services_gfycat_service - - - - - -telereddit_models_content_type->telereddit_services_imgur_service - - - - - -telereddit_models_content_type->telereddit_services_vreddit_service - - - - - -telereddit_models_content_type->telereddit_services_youtube_service - - - - - - -telereddit_models_content_type->telereddit_tests_test_post - - - - -telereddit_models_content_type->telereddit_tests_test_reddit - - - - -telereddit_models_content_type->telereddit_tests_test_services - - - - -telereddit_models_media->telereddit_linker - - - - - -telereddit_models_media->telereddit_services_generic_service - - - - - -telereddit_models_media->telereddit_services_gfycat_service - - - - - -telereddit_models_media->telereddit_services_imgur_service - - - - - -telereddit_models_media->telereddit_services_vreddit_service - - - - - - -telereddit_models_media->telereddit_services_youtube_service - - - - - -telereddit_models_media->telereddit_tests_test_post - - - - - - -telereddit_models_media->telereddit_tests_test_reddit - - - - - -telereddit_models_post->telereddit_reddit - - - - - -telereddit_models_post->telereddit_tests_test_post - - - - - - -telereddit_models_post->telereddit_tests_test_reddit - - - - - - - - -telereddit_reddit->telereddit_linker - - - - - -telereddit_reddit->telereddit_tests_test_reddit - - - - -telereddit_services - -telereddit. -services - - - -telereddit_services->telereddit_reddit - - - - - -telereddit_services->telereddit_tests_test_services - - - - - - -telereddit_services_services_wrapper - -telereddit. -services. -services_wrapper - - - -telereddit_services_generic_service->telereddit_services_services_wrapper - - - - - -telereddit_services_gfycat_service->telereddit_services_services_wrapper - - - - - -telereddit_services_gfycat_service->telereddit_tests_test_services - - - - - - -telereddit_services_imgur_service->telereddit_services_services_wrapper - - - - - -telereddit_services_service->telereddit_services_generic_service - - - - - -telereddit_services_service->telereddit_services_gfycat_service - - - - - -telereddit_services_service->telereddit_services_imgur_service - - - - - -telereddit_services_service->telereddit_services_vreddit_service - - - - - -telereddit_services_service->telereddit_services_youtube_service - - - - - -telereddit_services_services_wrapper->telereddit_reddit - - - - -telereddit_services_services_wrapper->telereddit_tests_test_services - - - - -telereddit_services_vreddit_service->telereddit_services_services_wrapper - - - - - -telereddit_services_youtube_service->telereddit_services_services_wrapper - - - - - -telereddit_telereddit->telereddit___main__ - - - - - diff --git a/docs/images/packages_telereddit.png b/docs/images/packages_telereddit.png new file mode 100644 index 0000000000000000000000000000000000000000..5e21cad77b8703e48725db0ff7e32e3ea826286a GIT binary patch literal 195411 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 f&zH~ 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 literal 0 HcmV?d00001 diff --git a/docs/telereddit/exceptions.html b/docs/telereddit/exceptions.html index 34c1e80..07e764e 100644 --- a/docs/telereddit/exceptions.html +++ b/docs/telereddit/exceptions.html @@ -37,7 +37,7 @@