bricks-py 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bricks_py-0.2.0 → bricks_py-0.2.1}/PKG-INFO +2 -2
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/core/genesis.py +6 -2
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/common.py +1 -1
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/spider/addon.py +3 -3
- {bricks_py-0.2.0 → bricks_py-0.2.1}/pyproject.toml +2 -2
- {bricks_py-0.2.0 → bricks_py-0.2.1}/.gitignore +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/LICENSE +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/README.md +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/__main__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/cli.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/manage.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/runner.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/server/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/server/sanic_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/client/server/starlette_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/core/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/core/context.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/core/dispatch.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/core/events.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/core/signals.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/db/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/db/mongo.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/db/redis_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/db/rocksdb.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/db/sqlite.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/cffi.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/curl.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/dp.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/go_requests.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/httpx_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/niquests_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/playwright_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/primp_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/pyhttpx_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/requests_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/downloader/tls_client_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/cookies.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/counter.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/extractors.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/headers.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/items.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/nodes.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/proxies.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/cache.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/local.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/redis_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/rocksdb_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/smart.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/queues/sqlite_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/request.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/response.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/lib/variable.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/plugins/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/plugins/make_seeds.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/plugins/on_request.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/plugins/scripts.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/plugins/storage.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/grpc_/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/grpc_/generic.proto +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/grpc_/generic_pb2.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/grpc_/generic_pb2.pyi +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/grpc_/generic_pb2_grpc.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/grpc_/service.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/http_/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/http_/service.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/redis_/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/redis_/service.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/socket_/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/socket_/service.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/websocket_/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/rpc/websocket_/service.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/spider/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/spider/air.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/spider/form.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/spider/template.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/state.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/tpls/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/tpls/spider/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/tpls/spider/air.tpl +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/tpls/spider/form.tpl +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/tpls/spider/template.tpl +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/arrow.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/codes.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/compress.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/convert.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/csv_.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/fake/__init__.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/fake/stochastic.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/fake/tls.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/fake/user_agent.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/package.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/pandora.py +0 -0
- {bricks_py-0.2.0 → bricks_py-0.2.1}/bricks/utils/scheduler.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bricks-py
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: quickly build your crawler
|
|
5
5
|
Project-URL: Homepage, https://github.com/KKKKKKKEM/bricks
|
|
6
6
|
Project-URL: Repository, https://github.com/KKKKKKKEM/bricks.git
|
|
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
20
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
21
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
-
Requires-Python:
|
|
22
|
+
Requires-Python: <3.14,>=3.10
|
|
23
23
|
Requires-Dist: better-exceptions==0.3.3
|
|
24
24
|
Requires-Dist: curl-cffi==0.15.0
|
|
25
25
|
Requires-Dist: jmespath-community==1.1.3
|
|
@@ -20,6 +20,8 @@ class MetaClass(type):
|
|
|
20
20
|
def __call__(cls, *args, **kwargs):
|
|
21
21
|
instance = type.__call__(cls, *args, **kwargs)
|
|
22
22
|
|
|
23
|
+
registed_evets = []
|
|
24
|
+
|
|
23
25
|
# 加载拦截器
|
|
24
26
|
for method in dir(instance):
|
|
25
27
|
# 修改被拦截的方法
|
|
@@ -39,12 +41,14 @@ class MetaClass(type):
|
|
|
39
41
|
continue
|
|
40
42
|
|
|
41
43
|
if hasattr(func, "__event__"):
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
registed_evets.append(func.__event__)
|
|
44
45
|
|
|
45
46
|
else:
|
|
46
47
|
hasattr(instance, "install") and instance.install() # type: ignore
|
|
47
48
|
|
|
49
|
+
for event in registed_evets:
|
|
50
|
+
instance.use(*event)
|
|
51
|
+
|
|
48
52
|
return instance
|
|
49
53
|
|
|
50
54
|
|
|
@@ -3,13 +3,13 @@ import collections
|
|
|
3
3
|
import concurrent.futures
|
|
4
4
|
import math
|
|
5
5
|
import uuid
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import Any, Callable, List, Optional, Type, Union
|
|
7
7
|
|
|
8
8
|
from loguru import logger
|
|
9
9
|
|
|
10
|
-
from bricks.core import
|
|
10
|
+
from bricks.core import dispatch, signals
|
|
11
11
|
from bricks.lib.queues import Item, LocalQueue, TaskQueue
|
|
12
|
-
from bricks.rpc.common import
|
|
12
|
+
from bricks.rpc.common import MODE, start_rpc_server
|
|
13
13
|
from bricks.spider.air import Context, Spider
|
|
14
14
|
|
|
15
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "bricks-py"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.1"
|
|
4
4
|
description = "quickly build your crawler"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -19,7 +19,7 @@ classifiers = [
|
|
|
19
19
|
"Topic :: Internet :: WWW/HTTP",
|
|
20
20
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
21
21
|
]
|
|
22
|
-
requires-python = ">=3.10"
|
|
22
|
+
requires-python = ">=3.10,<3.14"
|
|
23
23
|
dependencies = [
|
|
24
24
|
"better-exceptions==0.3.3",
|
|
25
25
|
"curl-cffi==0.15.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|