advexp-settings-cloud 0.0.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.
- advexp_settings_cloud-0.0.1/LICENSE +11 -0
- advexp_settings_cloud-0.0.1/PKG-INFO +48 -0
- advexp_settings_cloud-0.0.1/README.md +32 -0
- advexp_settings_cloud-0.0.1/pyproject.toml +30 -0
- advexp_settings_cloud-0.0.1/setup.cfg +4 -0
- advexp_settings_cloud-0.0.1/src/advexp_settings_cloud/__init__.py +9 -0
- advexp_settings_cloud-0.0.1/src/advexp_settings_cloud/_placeholder.py +9 -0
- advexp_settings_cloud-0.0.1/src/advexp_settings_cloud.egg-info/PKG-INFO +48 -0
- advexp_settings_cloud-0.0.1/src/advexp_settings_cloud.egg-info/SOURCES.txt +9 -0
- advexp_settings_cloud-0.0.1/src/advexp_settings_cloud.egg-info/dependency_links.txt +1 -0
- advexp_settings_cloud-0.0.1/src/advexp_settings_cloud.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Copyright 2026 Alexey Ivakin. All rights reserved.
|
|
2
|
+
|
|
3
|
+
This distribution is a PyPI name-reservation placeholder published by Advexp.
|
|
4
|
+
It contains no functional code: importing it raises ImportError on purpose.
|
|
5
|
+
|
|
6
|
+
The real advexp-settings-cloud package — the Cloud edition of Advexp.Settings
|
|
7
|
+
(cloud settings backends) — is commercial software licensed to customers under
|
|
8
|
+
the Advexp Commercial EULA (draft:
|
|
9
|
+
https://advexp.github.io/advexp.settings/eula/) and distributed via the
|
|
10
|
+
Advexp private package index. See https://advexp.github.io/advexp.settings/
|
|
11
|
+
for details.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: advexp-settings-cloud
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Defensive PyPI name reservation; the real Advexp.Settings Cloud plugin ships via the Advexp private index
|
|
5
|
+
Author: Alexey Ivakin
|
|
6
|
+
Project-URL: Homepage, https://advexp.github.io/advexp.settings/
|
|
7
|
+
Project-URL: Repository, https://github.com/advexp/advexp.settings.python
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Dynamic: license-file
|
|
16
|
+
|
|
17
|
+
# advexp-settings-cloud
|
|
18
|
+
|
|
19
|
+
**This project is a defensive name reservation published by Advexp. It contains no code.**
|
|
20
|
+
|
|
21
|
+
The real `advexp-settings-cloud` package — the Advexp.Settings Cloud plugin — is
|
|
22
|
+
**not distributed on the public PyPI**. It is available to licensed customers
|
|
23
|
+
through the Advexp private package index.
|
|
24
|
+
|
|
25
|
+
## Why this placeholder exists
|
|
26
|
+
|
|
27
|
+
Distributing paid packages from a private index while their names are free on the
|
|
28
|
+
public PyPI invites a *dependency confusion* attack: an attacker registers the same
|
|
29
|
+
name on PyPI with an inflated version number, and package managers configured with
|
|
30
|
+
both indexes may pick the attacker's build.
|
|
31
|
+
|
|
32
|
+
Owning the name on PyPI makes this attack impossible. For the same reason this
|
|
33
|
+
placeholder is pinned to version `0.0.1` and will never be upgraded, so it can
|
|
34
|
+
never win version resolution against the real package served from the private
|
|
35
|
+
index.
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
Copyright 2026 Alexey Ivakin. All rights reserved. This placeholder is not
|
|
40
|
+
open-source licensed; the full notice ships in the LICENSE file of the
|
|
41
|
+
distribution. The real plugin is commercial software licensed under the
|
|
42
|
+
[Advexp Commercial EULA (draft)](https://advexp.github.io/advexp.settings/eula/).
|
|
43
|
+
|
|
44
|
+
## I installed this package by mistake
|
|
45
|
+
|
|
46
|
+
Importing it raises `ImportError` on purpose. To install the real plugin,
|
|
47
|
+
configure the Advexp private package index as described at
|
|
48
|
+
<https://advexp.github.io/advexp.settings/>.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# advexp-settings-cloud
|
|
2
|
+
|
|
3
|
+
**This project is a defensive name reservation published by Advexp. It contains no code.**
|
|
4
|
+
|
|
5
|
+
The real `advexp-settings-cloud` package — the Advexp.Settings Cloud plugin — is
|
|
6
|
+
**not distributed on the public PyPI**. It is available to licensed customers
|
|
7
|
+
through the Advexp private package index.
|
|
8
|
+
|
|
9
|
+
## Why this placeholder exists
|
|
10
|
+
|
|
11
|
+
Distributing paid packages from a private index while their names are free on the
|
|
12
|
+
public PyPI invites a *dependency confusion* attack: an attacker registers the same
|
|
13
|
+
name on PyPI with an inflated version number, and package managers configured with
|
|
14
|
+
both indexes may pick the attacker's build.
|
|
15
|
+
|
|
16
|
+
Owning the name on PyPI makes this attack impossible. For the same reason this
|
|
17
|
+
placeholder is pinned to version `0.0.1` and will never be upgraded, so it can
|
|
18
|
+
never win version resolution against the real package served from the private
|
|
19
|
+
index.
|
|
20
|
+
|
|
21
|
+
## License
|
|
22
|
+
|
|
23
|
+
Copyright 2026 Alexey Ivakin. All rights reserved. This placeholder is not
|
|
24
|
+
open-source licensed; the full notice ships in the LICENSE file of the
|
|
25
|
+
distribution. The real plugin is commercial software licensed under the
|
|
26
|
+
[Advexp Commercial EULA (draft)](https://advexp.github.io/advexp.settings/eula/).
|
|
27
|
+
|
|
28
|
+
## I installed this package by mistake
|
|
29
|
+
|
|
30
|
+
Importing it raises `ImportError` on purpose. To install the real plugin,
|
|
31
|
+
configure the Advexp private package index as described at
|
|
32
|
+
<https://advexp.github.io/advexp.settings/>.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "advexp-settings-cloud"
|
|
7
|
+
version = "0.0.1"
|
|
8
|
+
description = "Defensive PyPI name reservation; the real Advexp.Settings Cloud plugin ships via the Advexp private index"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
# The real plugin is commercial (Advexp Commercial EULA via the private
|
|
12
|
+
# index); a custom license cannot be an SPDX expression, so the notice ships
|
|
13
|
+
# via license-files only
|
|
14
|
+
license-files = ["LICENSE"]
|
|
15
|
+
authors = [
|
|
16
|
+
{ name = "Alexey Ivakin" },
|
|
17
|
+
]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Topic :: Software Development :: Libraries",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
[project.urls]
|
|
26
|
+
Homepage = "https://advexp.github.io/advexp.settings/"
|
|
27
|
+
Repository = "https://github.com/advexp/advexp.settings.python"
|
|
28
|
+
|
|
29
|
+
[tool.setuptools.packages.find]
|
|
30
|
+
where = ["src"]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""Defensive PyPI placeholder for the private Advexp.Settings Cloud plugin.
|
|
2
|
+
|
|
3
|
+
This distribution only reserves the name ``advexp-settings-cloud`` on the
|
|
4
|
+
public PyPI to prevent dependency-confusion attacks. Importing it raises
|
|
5
|
+
ImportError on purpose; the real plugin is distributed via the Advexp
|
|
6
|
+
private package index (https://advexp.github.io/advexp.settings/).
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from . import _placeholder # noqa: F401 # the import itself raises ImportError
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""The raise below is the entire payload of this distribution."""
|
|
2
|
+
|
|
3
|
+
_MESSAGE = (
|
|
4
|
+
"This is a defensive placeholder for the name 'advexp-settings-cloud' on PyPI. "
|
|
5
|
+
"It contains no code and cannot be used. The real Advexp.Settings Cloud plugin "
|
|
6
|
+
"is distributed via the Advexp private package index: https://advexp.github.io/advexp.settings/"
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
raise ImportError(_MESSAGE)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: advexp-settings-cloud
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Defensive PyPI name reservation; the real Advexp.Settings Cloud plugin ships via the Advexp private index
|
|
5
|
+
Author: Alexey Ivakin
|
|
6
|
+
Project-URL: Homepage, https://advexp.github.io/advexp.settings/
|
|
7
|
+
Project-URL: Repository, https://github.com/advexp/advexp.settings.python
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Dynamic: license-file
|
|
16
|
+
|
|
17
|
+
# advexp-settings-cloud
|
|
18
|
+
|
|
19
|
+
**This project is a defensive name reservation published by Advexp. It contains no code.**
|
|
20
|
+
|
|
21
|
+
The real `advexp-settings-cloud` package — the Advexp.Settings Cloud plugin — is
|
|
22
|
+
**not distributed on the public PyPI**. It is available to licensed customers
|
|
23
|
+
through the Advexp private package index.
|
|
24
|
+
|
|
25
|
+
## Why this placeholder exists
|
|
26
|
+
|
|
27
|
+
Distributing paid packages from a private index while their names are free on the
|
|
28
|
+
public PyPI invites a *dependency confusion* attack: an attacker registers the same
|
|
29
|
+
name on PyPI with an inflated version number, and package managers configured with
|
|
30
|
+
both indexes may pick the attacker's build.
|
|
31
|
+
|
|
32
|
+
Owning the name on PyPI makes this attack impossible. For the same reason this
|
|
33
|
+
placeholder is pinned to version `0.0.1` and will never be upgraded, so it can
|
|
34
|
+
never win version resolution against the real package served from the private
|
|
35
|
+
index.
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
Copyright 2026 Alexey Ivakin. All rights reserved. This placeholder is not
|
|
40
|
+
open-source licensed; the full notice ships in the LICENSE file of the
|
|
41
|
+
distribution. The real plugin is commercial software licensed under the
|
|
42
|
+
[Advexp Commercial EULA (draft)](https://advexp.github.io/advexp.settings/eula/).
|
|
43
|
+
|
|
44
|
+
## I installed this package by mistake
|
|
45
|
+
|
|
46
|
+
Importing it raises `ImportError` on purpose. To install the real plugin,
|
|
47
|
+
configure the Advexp private package index as described at
|
|
48
|
+
<https://advexp.github.io/advexp.settings/>.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
src/advexp_settings_cloud/__init__.py
|
|
5
|
+
src/advexp_settings_cloud/_placeholder.py
|
|
6
|
+
src/advexp_settings_cloud.egg-info/PKG-INFO
|
|
7
|
+
src/advexp_settings_cloud.egg-info/SOURCES.txt
|
|
8
|
+
src/advexp_settings_cloud.egg-info/dependency_links.txt
|
|
9
|
+
src/advexp_settings_cloud.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
advexp_settings_cloud
|