TypeDAL 4.8.6__tar.gz → 4.8.7__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.
- {typedal-4.8.6 → typedal-4.8.7}/CHANGELOG.md +6 -0
- {typedal-4.8.6 → typedal-4.8.7}/PKG-INFO +1 -1
- typedal-4.8.7/coverage.svg +1 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/__about__.py +1 -1
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/fields.py +1 -3
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/tables.py +6 -5
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_config.py +1 -3
- typedal-4.8.6/.crush/.gitignore +0 -1
- typedal-4.8.6/.crush/crush.db-shm +0 -0
- typedal-4.8.6/.crush/crush.db-wal +0 -0
- typedal-4.8.6/.crush/init +0 -0
- typedal-4.8.6/.crush/logs/crush.log +0 -37
- typedal-4.8.6/coverage.svg +0 -1
- {typedal-4.8.6 → typedal-4.8.7}/.github/workflows/su6.yml +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/.gitignore +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/.readthedocs.yml +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/README.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/10_advanced_apis.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/1_getting_started.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/2_defining_tables.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/3_building_queries.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/4_relationships.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/5_py4web.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/6_migrations.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/7_configuration.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/8_mixins.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/9_memoization.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/css/code_blocks.css +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/index.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/docs/requirements.txt +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/example_new.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/example_old.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/mkdocs.yml +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/pyproject.toml +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/__init__.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/caching.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/cli.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/config.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/constants.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/core.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/define.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/enum_helpers.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/for_py4web.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/for_web2py.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/helpers.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/mixins.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/py.typed +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/query_builder.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/relationships.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/rows.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/serializers/as_json.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/serializers/typescript.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/types.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/src/typedal/web2py_py4web_shared.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tasks.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/__init__.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/configs/simple.toml +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/configs/valid.env +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/configs/valid.toml +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/py314_tests.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_cli.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_docs_examples.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_helpers.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_json.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_main.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_mixins.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_mypy.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_orm.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_py4web.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_query_builder.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_relationships.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_row.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_stats.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_table.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_typescript.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_typing_mypy.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_typing_pyright.md +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_web2py.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/test_xx_others.py +0 -0
- {typedal-4.8.6 → typedal-4.8.7}/tests/timings.py +0 -0
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
<!--next-version-placeholder-->
|
|
4
4
|
|
|
5
|
+
## v4.8.7 (2026-06-11)
|
|
6
|
+
|
|
7
|
+
### Fix
|
|
8
|
+
|
|
9
|
+
* Make type checker happy about as_dict and similar methods; reformat ([`f6be55f`](https://github.com/trialandsuccess/TypeDAL/commit/f6be55f253e87d409e0ac017f2bdb89233620391))
|
|
10
|
+
|
|
5
11
|
## v4.8.6 (2026-06-02)
|
|
6
12
|
|
|
7
13
|
### Fix
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="122" height="20" role="img" aria-label="coverage: 100.00%"><title>coverage: 100.00%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="122" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="61" height="20" fill="#4b0"/><rect width="122" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="905" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">100.00%</text><text x="905" y="150" fill-opacity=".3" textLength="510">100.00%</text></g><text x="905" y="140" textLength="510">100.00%</text></g></g></svg>
|
|
@@ -412,9 +412,7 @@ def UploadField(**kw: t.Unpack[FieldSettings]) -> TypedField[str]:
|
|
|
412
412
|
Upload = UploadField
|
|
413
413
|
|
|
414
414
|
|
|
415
|
-
def ReferenceField[
|
|
416
|
-
T_subclass: (TypedTable, Table)
|
|
417
|
-
](
|
|
415
|
+
def ReferenceField[T_subclass: (TypedTable, Table)](
|
|
418
416
|
other_table: str | t.Type[TypedTable] | TypedTable | Table | T_subclass,
|
|
419
417
|
**kw: t.Unpack[FieldSettings],
|
|
420
418
|
) -> TypedField[int]:
|
|
@@ -880,12 +880,13 @@ class TypedTable(_TypedTable, metaclass=TableMeta):
|
|
|
880
880
|
}
|
|
881
881
|
|
|
882
882
|
def _setup_instance_methods(self) -> None:
|
|
883
|
-
self.as_dict = self._as_dict # type: ignore
|
|
884
|
-
self.__json__ = self.as_json = self._as_json # type: ignore
|
|
885
|
-
# self.as_yaml = self._as_yaml # type: ignore
|
|
886
|
-
self.as_xml = self._as_xml # type: ignore
|
|
887
|
-
|
|
888
883
|
# use setattr instead of self.x = y to make the typecheckers happier
|
|
884
|
+
setattr(self, "as_dict", self._as_dict)
|
|
885
|
+
setattr(self, "__json__", self._as_json)
|
|
886
|
+
setattr(self, "as_json", self._as_json)
|
|
887
|
+
setattr(self, "as_xml", self._as_xml)
|
|
888
|
+
# setattr(self, "as_yaml", self._as_yaml)
|
|
889
|
+
|
|
889
890
|
setattr(self, "update", self._update)
|
|
890
891
|
setattr(self, "delete_record", self._delete_record)
|
|
891
892
|
setattr(self, "update_record", self._update_record)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import datetime as dt
|
|
2
|
-
from datetime import datetime
|
|
3
2
|
import os
|
|
4
3
|
import shutil
|
|
5
4
|
import sqlite3
|
|
6
5
|
import tempfile
|
|
7
6
|
import uuid
|
|
7
|
+
from datetime import datetime
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
|
|
10
10
|
import pytest
|
|
@@ -198,7 +198,6 @@ def test_timestamp_fields_sqlite(at_temp_dir):
|
|
|
198
198
|
assert '"ts" timestamp NOT NULL' in Timestamp._sql()
|
|
199
199
|
|
|
200
200
|
|
|
201
|
-
|
|
202
201
|
def test_timestamp_fields_psql(at_temp_dir):
|
|
203
202
|
examples = Path(__file__).parent / "configs"
|
|
204
203
|
shutil.copy(examples / "valid.env", "./.env")
|
|
@@ -229,7 +228,6 @@ def test_timestamp_fields_psql(at_temp_dir):
|
|
|
229
228
|
assert '"ts" timestamp NOT NULL' in Timestamp._sql()
|
|
230
229
|
|
|
231
230
|
|
|
232
|
-
|
|
233
231
|
def test_point_fields_sqlite(at_temp_dir):
|
|
234
232
|
db = TypeDAL("sqlite:memory")
|
|
235
233
|
|
typedal-4.8.6/.crush/.gitignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*
|
|
Binary file
|
|
Binary file
|
typedal-4.8.6/.crush/init
DELETED
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{"time":"2026-01-20T14:19:21.359487106+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/config.(*catwalkSync).Get.func1","file":"github.com/charmbracelet/crush/internal/config/catwalk.go","line":55},"msg":"Fetching providers from Catwalk"}
|
|
2
|
-
{"time":"2026-01-20T14:19:21.518115889+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/config.(*catwalkSync).Get.func1","file":"github.com/charmbracelet/crush/internal/config/catwalk.go","line":63},"msg":"Catwalk providers not modified"}
|
|
3
|
-
{"time":"2026-01-20T14:19:21.52626179+01:00","level":"INFO","msg":"OK 20250424200609_initial.sql (1.52ms)"}
|
|
4
|
-
{"time":"2026-01-20T14:19:21.526651475+01:00","level":"INFO","msg":"OK 20250515105448_add_summary_message_id.sql (330.71µs)"}
|
|
5
|
-
{"time":"2026-01-20T14:19:21.526995425+01:00","level":"INFO","msg":"OK 20250624000000_add_created_at_indexes.sql (325.29µs)"}
|
|
6
|
-
{"time":"2026-01-20T14:19:21.527303588+01:00","level":"INFO","msg":"OK 20250627000000_add_provider_to_messages.sql (293.15µs)"}
|
|
7
|
-
{"time":"2026-01-20T14:19:21.52790648+01:00","level":"INFO","msg":"OK 20250810000000_add_is_summary_message.sql (495.71µs)"}
|
|
8
|
-
{"time":"2026-01-20T14:19:21.528316924+01:00","level":"INFO","msg":"OK 20250812000000_add_todos_to_sessions.sql (389.38µs)"}
|
|
9
|
-
{"time":"2026-01-20T14:19:21.528324939+01:00","level":"INFO","msg":"goose: successfully migrated database to version: 20250812000000"}
|
|
10
|
-
{"time":"2026-01-20T14:19:21.528356959+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.(*App).initLSPClients","file":"github.com/charmbracelet/crush/internal/app/lsp.go","line":21},"msg":"LSP clients initialization started in background"}
|
|
11
|
-
{"time":"2026-01-20T14:19:21.52843831+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.New.func1","file":"github.com/charmbracelet/crush/internal/app/app.go","line":102},"msg":"Initializing MCP clients"}
|
|
12
|
-
{"time":"2026-01-20T14:21:06.413595152+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
13
|
-
{"time":"2026-01-20T14:21:14.539289381+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
14
|
-
{"time":"2026-01-20T14:21:15.710688424+01:00","level":"WARN","source":{"function":"github.com/charmbracelet/crush/internal/agent/tools.init.func1","file":"github.com/charmbracelet/crush/internal/agent/tools/rg.go","line":18},"msg":"Ripgrep (rg) not found in $PATH. Some grep features might be limited or slower."}
|
|
15
|
-
{"time":"2026-01-20T14:21:17.08089755+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
16
|
-
{"time":"2026-01-20T14:21:17.151106375+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
17
|
-
{"time":"2026-01-20T14:22:05.503761296+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
18
|
-
{"time":"2026-01-20T14:26:05.030425805+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
19
|
-
{"time":"2026-01-20T14:36:26.778665189+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
20
|
-
{"time":"2026-01-20T14:38:51.314473736+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
21
|
-
{"time":"2026-01-20T15:02:22.602405814+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.(*App).Shutdown.func1","file":"github.com/charmbracelet/crush/internal/app/app.go","line":403},"msg":"Shutdown took 6.62949ms"}
|
|
22
|
-
{"time":"2026-01-20T15:02:23.719585648+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/config.(*catwalkSync).Get.func1","file":"github.com/charmbracelet/crush/internal/config/catwalk.go","line":55},"msg":"Fetching providers from Catwalk"}
|
|
23
|
-
{"time":"2026-01-20T15:02:23.881789126+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/config.(*catwalkSync).Get.func1","file":"github.com/charmbracelet/crush/internal/config/catwalk.go","line":63},"msg":"Catwalk providers not modified"}
|
|
24
|
-
{"time":"2026-01-20T15:02:23.884044691+01:00","level":"INFO","msg":"goose: no migrations to run. current version: 20250812000000"}
|
|
25
|
-
{"time":"2026-01-20T15:02:23.884082792+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.(*App).initLSPClients","file":"github.com/charmbracelet/crush/internal/app/lsp.go","line":21},"msg":"LSP clients initialization started in background"}
|
|
26
|
-
{"time":"2026-01-20T15:02:23.884273487+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.New.func1","file":"github.com/charmbracelet/crush/internal/app/app.go","line":102},"msg":"Initializing MCP clients"}
|
|
27
|
-
{"time":"2026-01-20T15:04:13.024457515+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
28
|
-
{"time":"2026-01-20T15:04:14.232072885+01:00","level":"WARN","source":{"function":"github.com/charmbracelet/crush/internal/agent/tools.init.func1","file":"github.com/charmbracelet/crush/internal/agent/tools/rg.go","line":18},"msg":"Ripgrep (rg) not found in $PATH. Some grep features might be limited or slower."}
|
|
29
|
-
{"time":"2026-01-20T15:11:24.612161916+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.(*App).Shutdown.func1","file":"github.com/charmbracelet/crush/internal/app/app.go","line":403},"msg":"Shutdown took 9.537141ms"}
|
|
30
|
-
{"time":"2026-01-20T15:11:25.263960575+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/config.(*catwalkSync).Get.func1","file":"github.com/charmbracelet/crush/internal/config/catwalk.go","line":55},"msg":"Fetching providers from Catwalk"}
|
|
31
|
-
{"time":"2026-01-20T15:11:25.431990051+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/config.(*catwalkSync).Get.func1","file":"github.com/charmbracelet/crush/internal/config/catwalk.go","line":63},"msg":"Catwalk providers not modified"}
|
|
32
|
-
{"time":"2026-01-20T15:11:25.434282035+01:00","level":"INFO","msg":"goose: no migrations to run. current version: 20250812000000"}
|
|
33
|
-
{"time":"2026-01-20T15:11:25.434366662+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.(*App).initLSPClients","file":"github.com/charmbracelet/crush/internal/app/lsp.go","line":21},"msg":"LSP clients initialization started in background"}
|
|
34
|
-
{"time":"2026-01-20T15:11:25.434579879+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/app.New.func1","file":"github.com/charmbracelet/crush/internal/app/app.go","line":102},"msg":"Initializing MCP clients"}
|
|
35
|
-
{"time":"2026-01-20T15:24:40.456010578+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).generateTitle","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":788},"msg":"generated title with small model"}
|
|
36
|
-
{"time":"2026-01-20T15:24:51.673808433+01:00","level":"WARN","source":{"function":"github.com/charmbracelet/crush/internal/agent/tools.init.func1","file":"github.com/charmbracelet/crush/internal/agent/tools/rg.go","line":18},"msg":"Ripgrep (rg) not found in $PATH. Some grep features might be limited or slower."}
|
|
37
|
-
{"time":"2026-01-20T15:26:03.868420566+01:00","level":"INFO","source":{"function":"github.com/charmbracelet/crush/internal/agent.(*sessionAgent).Cancel","file":"github.com/charmbracelet/crush/internal/agent/agent.go","line":907},"msg":"Request cancellation initiated","session_id":"4c2d1684-8db2-4ffd-83bb-9c08fe850f29"}
|
typedal-4.8.6/coverage.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="122" height="20" role="img" aria-label="coverage: 100.00%"><title>coverage: 100.00%</title><filter id="blur"><feGaussianBlur in="SourceGraphic" stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="122" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="61" height="20" fill="#4b0"/><rect width="122" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".80" filter="url(#blur)" transform="scale(.1)" textLength="510">coverage</text><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="905" y="150" fill="#010101" fill-opacity=".80" filter="url(#blur)" transform="scale(.1)" textLength="510">100.00%</text><text aria-hidden="true" x="905" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">100.00%</text><text x="905" y="140" transform="scale(.1)" fill="#fff" textLength="510">100.00%</text></g></svg>
|
|
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
|