🦎 A DHT crawler with a minimalistic frontend, written in Python

seik, updated 🕥 2022-01-21 20:24:47

stilio

.. image:: https://travis-ci.org/seik/stilio.svg?branch=master :target: https://travis-ci.org/seik/stilio .. image:: https://readthedocs.org/projects/stilio/badge/?version=latest :target: https://stilio.readthedocs.io/en/latest/?badge=latest .. image:: https://img.shields.io/badge/code_style-black-000000.svg :target: https://github.com/ambv/black .. image:: https://img.shields.io/github/license/seik/stilio :target: https://github.com/seik/stilio/blob/master/LICENSE

|

.. raw:: html

<embed>
    <p align="center">
        <img src="resources/images/stilio-logo.png">
    </p>
</embed>

Goals

  • Completely written in python.
  • Fast. But never trade code readability for speed.
  • Easy set up.

Quickstart ~~~~~~~~~~

A docker-compose </docker-compose.yml>_ file is included to allow a fast and easy set up.

::

docker-compose up

.. note::

For a production enviroment it's recommended to run the frontend and database separated from the
crawler since the last one generates a lot of traffic and can make a poor experience
for the users. You can read a guide about how to do this `here <https://stilio.readthedocs.io/en/latest/stilio/guides.html>`_.

FAQ ~~~

The crawler speed is not so good.

Try to run this commands if you are on linux:

::

iptables -I OUTPUT -t raw -p udp --sport PORT_NUMBER -j NOTRACK
iptables -I PREROUTING -t raw -p udp --dport PORT_NUMBER -j NOTRACK

Issues

Bump ipython from 7.20.0 to 7.31.1

opened on 2022-01-21 20:24:47 by dependabot[bot]

Bumps ipython from 7.20.0 to 7.31.1.

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/seik/stilio/network/alerts).

Bump fastapi from 0.52.0 to 0.65.2

opened on 2021-06-10 15:46:08 by dependabot[bot]

Bumps fastapi from 0.52.0 to 0.65.2.

Release notes

Sourced from fastapi's releases.

0.65.2

Security fixes

This change fixes a CSRF security vulnerability when using cookies for authentication in path operations with JSON payloads sent by browsers.

In versions lower than 0.65.2, FastAPI would try to read the request payload as JSON even if the content-type header sent was not set to application/json or a compatible JSON media type (e.g. application/geo+json).

So, a request with a content type of text/plain containing JSON data would be accepted and the JSON data would be extracted.

But requests with content type text/plain are exempt from CORS preflights, for being considered Simple requests. So, the browser would execute them right away including cookies, and the text content could be a JSON string that would be parsed and accepted by the FastAPI application.

See CVE-2021-32677 for more details.

Thanks to Dima Boger for the security report! 🙇🔒

Internal

0.65.1

Security fixes

0.65.0

Breaking Changes - Upgrade

  • ⬆️ Upgrade Starlette to 0.14.2, including internal UJSONResponse migrated from Starlette. This includes several bug fixes and features from Starlette. PR #2335 by @​hanneskuettner.

Translations

Internal

0.64.0

Features

... (truncated)

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/seik/stilio/network/alerts).

Bump pydantic from 1.4 to 1.6.2

opened on 2021-05-13 20:36:45 by dependabot[bot]

Bumps pydantic from 1.4 to 1.6.2.

Release notes

Sourced from pydantic's releases.

v1.6.2 (2021-05-11)

Security fix: Fix date and datetime parsing so passing either 'infinity' or float('inf') (or their negative values) does not cause an infinite loop, see security advisory CVE-2021-29510.

v1.6.1 (2020-07-15)

See Changelog.

Thank you to pydantic's sponsors: @​matin, @​tiangolo, @​chdsbd, @​jorgecarleitao, and 1 anonymous sponsor for their kind support.

changes:

v1.6 (2020-07-11)

See Changelog.

Thank you to pydantic's sponsors: @​matin, @​tiangolo, @​chdsbd, @​jorgecarleitao, and 1 anonymous sponsor for their kind support.

changes:

  • Modify validators for conlist and conset to not have always=True, #1682 by @​samuelcolvin
  • add port check to AnyUrl (can't exceed 65536) ports are 16 insigned bits: 0 <= port <= 2**16-1 src: rfc793 header format, #1654 by @​flapili
  • Document default regex anchoring semantics, #1648 by @​yurikhan
  • Use chain.from_iterable in class_validators.py. This is a faster and more idiomatic way of using itertools.chain. Instead of computing all the items in the iterable and storing them in memory, they are computed one-by-one and never stored as a huge list. This can save on both runtime and memory space, #1642 by @​cool-RR
  • Add conset(), analogous to conlist(), #1623 by @​patrickkwang
  • make pydantic errors (un)pickable, #1616 by @​PrettyWood
  • Allow custom encoding for dotenv files, #1615 by @​PrettyWood
  • Ensure SchemaExtraCallable is always defined to get type hints on BaseConfig, #1614 by @​PrettyWood
  • Update datetime parser to support negative timestamps, #1600 by @​mlbiche
  • Update mypy, remove AnyType alias for Type[Any], #1598 by @​samuelcolvin
  • Adjust handling of root validators so that errors are aggregated from all failing root validators, instead of reporting on only the first root validator to fail, #1586 by @​beezee
  • Make __modify_schema__ on Enums apply to the enum schema rather than fields that use the enum, #1581 by @​therefromhere
  • Fix behavior of __all__ key when used in conjunction with index keys in advanced include/exclude of fields that are sequences, #1579 by @​xspirus
  • Subclass validators do not run when referencing a List field defined in a parent class when each_item=True. Added an example to the docs illustrating this, #1566 by @​samueldeklund
  • change schema.field_class_to_schema to support frozenset in schema, #1557 by @​wangpeibao
  • Call __modify_schema__ only for the field schema, #1552 by @​PrettyWood
  • Move the assignment of field.validate_always in fields.py so the always parameter of validators work on inheritance, #1545 by @​dcHHH
  • Added support for UUID instantiation through 16 byte strings such as b'\x12\x34\x56\x78' * 4. This was done to support BINARY(16) columns in sqlalchemy, #1541 by @​shawnwall
  • Add a test assertion that default_factory can return a singleton, #1523 by @​therefromhere
  • Add NameEmail.__eq__ so duplicate NameEmail instances are evaluated as equal, #1514 by @​stephen-bunn
  • Add datamodel-code-generator link in pydantic document site, #1500 by @​koxudaxi
  • Added a "Discussion of Pydantic" section to the documentation, with a link to "Pydantic Introduction" video by Alexander Hultnér, #1499 by @​hultner
  • Avoid some side effects of default_factory by calling it only once if possible and by not setting a default value in the schema, #1491 by @​PrettyWood
  • Added docs about dumping dataclasses to JSON, #1487 by @​mikegrima
  • Make BaseModel.__signature__ class-only, so getting __signature__ from model instance will raise AttributeError, #1466 by @​MrMrRobat
  • include 'format': 'password' in the schema for secret types, #1424 by @​atheuz
  • Modify schema constraints on ConstrainedFloat so that exclusiveMinimum and minimum are not included in the schema if they are equal to -math.inf and exclusiveMaximum and maximum are not included if they are equal to math.inf, #1417 by @​vdwees
  • Squash internal __root__ dicts in .dict() (and, by extension, in .json()), #1414 by @​patrickkwang

... (truncated)

Changelog

Sourced from pydantic's changelog.

v1.6.2 (2021-05-11)

  • Security fix: Fix date and datetime parsing so passing either 'infinity' or float('inf') (or their negative values) does not cause an infinite loop, See security advisory CVE-2021-29510

v1.6.1 (2020-07-15)

v1.6 (2020-07-11)

Thank you to pydantic's sponsors: @​matin, @​tiangolo, @​chdsbd, @​jorgecarleitao, and 1 anonymous sponsor for their kind support.

  • Modify validators for conlist and conset to not have always=True, #1682 by @​samuelcolvin
  • add port check to AnyUrl (can't exceed 65536) ports are 16 insigned bits: 0 <= port <= 2**16-1 src: rfc793 header format, #1654 by @​flapili
  • Document default regex anchoring semantics, #1648 by @​yurikhan
  • Use chain.from_iterable in class_validators.py. This is a faster and more idiomatic way of using itertools.chain. Instead of computing all the items in the iterable and storing them in memory, they are computed one-by-one and never stored as a huge list. This can save on both runtime and memory space, #1642 by @​cool-RR
  • Add conset(), analogous to conlist(), #1623 by @​patrickkwang
  • make pydantic errors (un)pickable, #1616 by @​PrettyWood
  • Allow custom encoding for dotenv files, #1615 by @​PrettyWood
  • Ensure SchemaExtraCallable is always defined to get type hints on BaseConfig, #1614 by @​PrettyWood
  • Update datetime parser to support negative timestamps, #1600 by @​mlbiche
  • Update mypy, remove AnyType alias for Type[Any], #1598 by @​samuelcolvin
  • Adjust handling of root validators so that errors are aggregated from all failing root validators, instead of reporting on only the first root validator to fail, #1586 by @​beezee
  • Make __modify_schema__ on Enums apply to the enum schema rather than fields that use the enum, #1581 by @​therefromhere
  • Fix behavior of __all__ key when used in conjunction with index keys in advanced include/exclude of fields that are sequences, #1579 by @​xspirus
  • Subclass validators do not run when referencing a List field defined in a parent class when each_item=True. Added an example to the docs illustrating this, #1566 by @​samueldeklund
  • change schema.field_class_to_schema to support frozenset in schema, #1557 by @​wangpeibao
  • Call __modify_schema__ only for the field schema, #1552 by @​PrettyWood
  • Move the assignment of field.validate_always in fields.py so the always parameter of validators work on inheritance, #1545 by @​dcHHH
  • Added support for UUID instantiation through 16 byte strings such as b'\x12\x34\x56\x78' * 4. This was done to support BINARY(16) columns in sqlalchemy, #1541 by @​shawnwall
  • Add a test assertion that default_factory can return a singleton, #1523 by @​therefromhere
  • Add NameEmail.__eq__ so duplicate NameEmail instances are evaluated as equal, #1514 by @​stephen-bunn
  • Add datamodel-code-generator link in pydantic document site, #1500 by @​koxudaxi
  • Added a "Discussion of Pydantic" section to the documentation, with a link to "Pydantic Introduction" video by Alexander Hultnér, #1499 by @​hultner
  • Avoid some side effects of default_factory by calling it only once if possible and by not setting a default value in the schema, #1491 by @​PrettyWood
  • Added docs about dumping dataclasses to JSON, #1487 by @​mikegrima
  • Make BaseModel.__signature__ class-only, so getting __signature__ from model instance will raise AttributeError, #1466 by @​MrMrRobat
  • include 'format': 'password' in the schema for secret types, #1424 by @​atheuz
  • Modify schema constraints on ConstrainedFloat so that exclusiveMinimum and minimum are not included in the schema if they are equal to -math.inf and exclusiveMaximum and maximum are not included if they are equal to math.inf, #1417 by @​vdwees
  • Squash internal __root__ dicts in .dict() (and, by extension, in .json()), #1414 by @​patrickkwang
  • Move const validator to post-validators so it validates the parsed value, #1410 by @​selimb
  • Fix model validation to handle nested literals, e.g. Literal['foo', Literal['bar']], #1364 by @​DBCerigo
  • Remove user_required = True from RedisDsn, neither user nor password are required, #1275 by @​samuelcolvin

... (truncated)

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/seik/stilio/network/alerts).

Bump py from 1.8.1 to 1.10.0

opened on 2021-04-20 18:50:24 by dependabot[bot]

Bumps py from 1.8.1 to 1.10.0.

Changelog

Sourced from py's changelog.

1.10.0 (2020-12-12)

  • Fix a regular expression DoS vulnerability in the py.path.svnwc SVN blame functionality (CVE-2020-29651)
  • Update vendored apipkg: 1.4 => 1.5
  • Update vendored iniconfig: 1.0.0 => 1.1.1

1.9.0 (2020-06-24)

  • Add type annotation stubs for the following modules:

    • py.error
    • py.iniconfig
    • py.path (not including SVN paths)
    • py.io
    • py.xml

    There are no plans to type other modules at this time.

    The type annotations are provided in external .pyi files, not inline in the code, and may therefore contain small errors or omissions. If you use py in conjunction with a type checker, and encounter any type errors you believe should be accepted, please report it in an issue.

1.8.2 (2020-06-15)

  • On Windows, py.path.locals which differ only in case now have the same Python hash value. Previously, such paths were considered equal but had different hashes, which is not allowed and breaks the assumptions made by dicts, sets and other users of hashes.
Commits
  • e5ff378 Update CHANGELOG for 1.10.0
  • 94cf44f Update vendored libs
  • 5e8ded5 testing: comment out an assert which fails on Python 3.9 for now
  • afdffcc Rename HOWTORELEASE.rst to RELEASING.rst
  • 2de53a6 Merge pull request #266 from nicoddemus/gh-actions
  • fa1b32e Merge pull request #264 from hugovk/patch-2
  • 887d6b8 Skip test_samefile_symlink on pypy3 on Windows
  • e94e670 Fix test_comments() in test_source
  • fef9a32 Adapt test
  • 4a694b0 Add GitHub Actions badge to README
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/seik/stilio/network/alerts).

SQL error

opened on 2021-04-20 17:13:20 by johnjjss

frontend_1 | [2021-04-20 20:05:41 +0000] [9] [ERROR] Exception in ASGI application frontend_1 | Traceback (most recent call last): frontend_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi frontend_1 | result = await app(self.scope, self.receive, self.send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in call frontend_1 | return await self.app(scope, receive, send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/fastapi/applications.py", line 149, in call frontend_1 | await super().call(scope, receive, send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/applications.py", line 102, in call frontend_1 | await self.middleware_stack(scope, receive, send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in call frontend_1 | raise exc from None frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in call frontend_1 | await self.app(scope, receive, send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in __call__ frontend_1 | raise exc from None frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__ frontend_1 | await self.app(scope, receive, sender) frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 550, in __call__ frontend_1 | await route.handle(scope, receive, send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle frontend_1 | await self.app(scope, receive, send) frontend_1 | File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 41, in app frontend_1 | response = await func(request) frontend_1 | File "/usr/local/lib/python3.8/site-packages/fastapi/routing.py", line 147, in app frontend_1 | raw_response = await run_endpoint_function( frontend_1 | File "/usr/local/lib/python3.8/site-packages/fastapi/routing.py", line 101, in run_endpoint_function frontend_1 | return await dependant.call(values) frontend_1 | File "/usr/src/app/stilio/frontend/main.py", line 46, in index frontend_1 | count = Torrent.total_torrent_count() frontend_1 | File "/usr/src/app/stilio/persistence/torrents/models.py", line 42, in total_torrent_count frontend_1 | count = cls.select().count() frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 1845, in inner frontend_1 | return method(self, database, *args, kwargs) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 2121, in count frontend_1 | return Select([clone], [fn.COUNT(SQL('1'))]).scalar(database) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 1845, in inner frontend_1 | return method(self, database, args, kwargs) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 2106, in scalar frontend_1 | row = self.tuples().peek(database) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 1845, in inner frontend_1 | return method(self, database, args, kwargs) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 2093, in peek frontend_1 | rows = self.execute(database)[:n] frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 1845, in inner frontend_1 | return method(self, database, *args, kwargs) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 1916, in execute frontend_1 | return self._execute(database) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 2087, in _execute frontend_1 | cursor = database.execute(self) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 3070, in execute frontend_1 | return self.execute_sql(sql, params, commit=commit) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 3064, in execute_sql frontend_1 | self.commit() frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 2831, in exit frontend_1 | reraise(new_type, new_type(exc_value, *exc_args), traceback) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 183, in reraise frontend_1 | raise value.with_traceback(tb) frontend_1 | File "/usr/local/lib/python3.8/site-packages/peewee.py", line 3057, in execute_sql frontend_1 | cursor.execute(sql, params or ()) frontend_1 | peewee.ProgrammingError: relation "torrent" does not exist frontend_1 | LINE 1: SELECT COUNT(1) FROM (SELECT 1 FROM "torrent" AS "t1") AS "... frontend_1 | ^ frontend_1 |

Bump pygments from 2.6.1 to 2.7.4

opened on 2021-03-29 20:49:12 by dependabot[bot]

Bumps pygments from 2.6.1 to 2.7.4.

Release notes

Sourced from pygments's releases.

2.7.4

  • Updated lexers:

    • Apache configurations: Improve handling of malformed tags (#1656)

    • CSS: Add support for variables (#1633, #1666)

    • Crystal (#1650, #1670)

    • Coq (#1648)

    • Fortran: Add missing keywords (#1635, #1665)

    • Ini (#1624)

    • JavaScript and variants (#1647 -- missing regex flags, #1651)

    • Markdown (#1623, #1617)

    • Shell

      • Lex trailing whitespace as part of the prompt (#1645)
      • Add missing in keyword (#1652)
    • SQL - Fix keywords (#1668)

    • Typescript: Fix incorrect punctuation handling (#1510, #1511)

  • Fix infinite loop in SML lexer (#1625)

  • Fix backtracking string regexes in JavaScript/TypeScript, Modula2 and many other lexers (#1637)

  • Limit recursion with nesting Ruby heredocs (#1638)

  • Fix a few inefficient regexes for guessing lexers

  • Fix the raw token lexer handling of Unicode (#1616)

  • Revert a private API change in the HTML formatter (#1655) -- please note that private APIs remain subject to change!

  • Fix several exponential/cubic-complexity regexes found by Ben Caller/Doyensec (#1675)

  • Fix incorrect MATLAB example (#1582)

Thanks to Google's OSS-Fuzz project for finding many of these bugs.

2.7.3

... (truncated)

Changelog

Sourced from pygments's changelog.

Version 2.7.4

(released January 12, 2021)

  • Updated lexers:

    • Apache configurations: Improve handling of malformed tags (#1656)

    • CSS: Add support for variables (#1633, #1666)

    • Crystal (#1650, #1670)

    • Coq (#1648)

    • Fortran: Add missing keywords (#1635, #1665)

    • Ini (#1624)

    • JavaScript and variants (#1647 -- missing regex flags, #1651)

    • Markdown (#1623, #1617)

    • Shell

      • Lex trailing whitespace as part of the prompt (#1645)
      • Add missing in keyword (#1652)
    • SQL - Fix keywords (#1668)

    • Typescript: Fix incorrect punctuation handling (#1510, #1511)

  • Fix infinite loop in SML lexer (#1625)

  • Fix backtracking string regexes in JavaScript/TypeScript, Modula2 and many other lexers (#1637)

  • Limit recursion with nesting Ruby heredocs (#1638)

  • Fix a few inefficient regexes for guessing lexers

  • Fix the raw token lexer handling of Unicode (#1616)

  • Revert a private API change in the HTML formatter (#1655) -- please note that private APIs remain subject to change!

  • Fix several exponential/cubic-complexity regexes found by Ben Caller/Doyensec (#1675)

  • Fix incorrect MATLAB example (#1582)

Thanks to Google's OSS-Fuzz project for finding many of these bugs.

Version 2.7.3

(released December 6, 2020)

... (truncated)

Commits
  • 4d555d0 Bump version to 2.7.4.
  • fc3b05d Update CHANGES.
  • ad21935 Revert "Added dracula theme style (#1636)"
  • e411506 Prepare for 2.7.4 release.
  • 275e34d doc: remove Perl 6 ref
  • 2e7e8c4 Fix several exponential/cubic complexity regexes found by Ben Caller/Doyensec
  • eb39c43 xquery: fix pop from empty stack
  • 2738778 fix coding style in test_analyzer_lexer
  • 02e0f09 Added 'ERROR STOP' to fortran.py keywords. (#1665)
  • c83fe48 support added for css variables (#1633)
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/seik/stilio/network/alerts).
Iván Martín

Memento qui sis.

GitHub Repository Homepage

python asyncio torrent