Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .ci/scripts/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
But some pulp paths start with curly brackets e.g. {artifact_href}
This script modifies drf-spectacular schema validation to accept slashes and curly brackets.
"""

import json
from drf_spectacular.validation import JSON_SCHEMA_SPEC_PATH

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ jobs:
bump-my-version bump --dry-run release
bump-my-version show-bump

# run black separately from flake8 to get a diff
- name: "Run black"
run: |
black --version
black --check --diff .

# Lint code.
- name: "Run flake8"
run: |
Expand Down
2 changes: 2 additions & 0 deletions lint_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
#
# For more info visit https://github.com/pulp/plugin_template

black==24.3.0
bump-my-version
check-manifest
flake8
flake8-black
packaging
yamllint
2 changes: 1 addition & 1 deletion pulp_python/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
default_app_config = 'pulp_python.app.PulpPythonPluginAppConfig'
default_app_config = "pulp_python.app.PulpPythonPluginAppConfig"
4 changes: 2 additions & 2 deletions pulp_python/app/management/commands/repair-python-metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def repair_metadata(content):
batch = []
set_of_update_fields = set()
total_repaired = 0
for package in immediate_content.prefetch_related('_artifacts').iterator(chunk_size=1000):
for package in immediate_content.prefetch_related("_artifacts").iterator(chunk_size=1000):
new_data = artifact_to_python_content_data(
package.filename, package._artifacts.get(), package.pulp_domain
)
Expand Down Expand Up @@ -55,7 +55,7 @@ def href_prn_list_handler(value):
(?:{settings.API_ROOT}(?:[-_a-zA-Z0-9]+/)?api/v3/repositories/python/python/[-a-f0-9]+/)
|(?:prn:python\.pythonrepository:[-a-f0-9]+)
""",
re.VERBOSE
re.VERBOSE,
)
values = []
for v in value.split(","):
Expand Down
177 changes: 127 additions & 50 deletions pulp_python/app/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,87 +10,164 @@ class Migration(migrations.Migration):
initial = True

dependencies = [
('core', '0091_systemid'),
("core", "0091_systemid"),
]

operations = [
migrations.CreateModel(
name='PythonPublication',
name="PythonPublication",
fields=[
('publication_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonpublication', serialize=False, to='core.publication')),
(
"publication_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
related_name="python_pythonpublication",
serialize=False,
to="core.publication",
),
),
],
options={
'default_related_name': '%(app_label)s_%(model_name)s',
"default_related_name": "%(app_label)s_%(model_name)s",
},
bases=('core.publication',),
bases=("core.publication",),
),
migrations.CreateModel(
name='PythonRemote',
name="PythonRemote",
fields=[
('remote_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonremote', serialize=False, to='core.remote')),
('prereleases', models.BooleanField(default=False)),
('includes', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
('excludes', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
(
"remote_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
related_name="python_pythonremote",
serialize=False,
to="core.remote",
),
),
("prereleases", models.BooleanField(default=False)),
("includes", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
("excludes", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
],
options={
'default_related_name': '%(app_label)s_%(model_name)s',
"default_related_name": "%(app_label)s_%(model_name)s",
},
bases=('core.remote',),
bases=("core.remote",),
),
migrations.CreateModel(
name='PythonRepository',
name="PythonRepository",
fields=[
('repository_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonrepository', serialize=False, to='core.repository')),
(
"repository_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
related_name="python_pythonrepository",
serialize=False,
to="core.repository",
),
),
],
options={
'default_related_name': '%(app_label)s_%(model_name)s',
"default_related_name": "%(app_label)s_%(model_name)s",
},
bases=('core.repository',),
bases=("core.repository",),
),
migrations.CreateModel(
name='PythonPackageContent',
name="PythonPackageContent",
fields=[
('content_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonpackagecontent', serialize=False, to='core.content')),
('filename', models.TextField(db_index=True, unique=True)),
('packagetype', models.TextField(choices=[('bdist_dmg', 'bdist_dmg'), ('bdist_dumb', 'bdist_dumb'), ('bdist_egg', 'bdist_egg'), ('bdist_msi', 'bdist_msi'), ('bdist_rpm', 'bdist_rpm'), ('bdist_wheel', 'bdist_wheel'), ('bdist_wininst', 'bdist_wininst'), ('sdist', 'sdist')])),
('name', models.TextField()),
('version', models.TextField()),
('metadata_version', models.TextField()),
('summary', models.TextField()),
('description', models.TextField()),
('keywords', models.TextField()),
('home_page', models.TextField()),
('download_url', models.TextField()),
('author', models.TextField()),
('author_email', models.TextField()),
('maintainer', models.TextField()),
('maintainer_email', models.TextField()),
('license', models.TextField()),
('requires_python', models.TextField()),
('project_url', models.TextField()),
('platform', models.TextField()),
('supported_platform', models.TextField()),
('requires_dist', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
('provides_dist', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
('obsoletes_dist', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
('requires_external', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
('classifiers', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
(
"content_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
related_name="python_pythonpackagecontent",
serialize=False,
to="core.content",
),
),
("filename", models.TextField(db_index=True, unique=True)),
(
"packagetype",
models.TextField(
choices=[
("bdist_dmg", "bdist_dmg"),
("bdist_dumb", "bdist_dumb"),
("bdist_egg", "bdist_egg"),
("bdist_msi", "bdist_msi"),
("bdist_rpm", "bdist_rpm"),
("bdist_wheel", "bdist_wheel"),
("bdist_wininst", "bdist_wininst"),
("sdist", "sdist"),
]
),
),
("name", models.TextField()),
("version", models.TextField()),
("metadata_version", models.TextField()),
("summary", models.TextField()),
("description", models.TextField()),
("keywords", models.TextField()),
("home_page", models.TextField()),
("download_url", models.TextField()),
("author", models.TextField()),
("author_email", models.TextField()),
("maintainer", models.TextField()),
("maintainer_email", models.TextField()),
("license", models.TextField()),
("requires_python", models.TextField()),
("project_url", models.TextField()),
("platform", models.TextField()),
("supported_platform", models.TextField()),
("requires_dist", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
("provides_dist", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
("obsoletes_dist", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
("requires_external", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
("classifiers", django.contrib.postgres.fields.jsonb.JSONField(default=list)),
],
options={
'default_related_name': '%(app_label)s_%(model_name)s',
'unique_together': {('filename',)},
"default_related_name": "%(app_label)s_%(model_name)s",
"unique_together": {("filename",)},
},
bases=('core.content',),
bases=("core.content",),
),
migrations.CreateModel(
name='PythonDistribution',
name="PythonDistribution",
fields=[
('basedistribution_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythondistribution', serialize=False, to='core.basedistribution')),
('publication', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='python_pythondistribution', to='core.publication')),
(
"basedistribution_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
related_name="python_pythondistribution",
serialize=False,
to="core.basedistribution",
),
),
(
"publication",
models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="python_pythondistribution",
to="core.publication",
),
),
],
options={
'default_related_name': '%(app_label)s_%(model_name)s',
"default_related_name": "%(app_label)s_%(model_name)s",
},
bases=('core.basedistribution',),
bases=("core.basedistribution",),
),
]
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
class Migration(migrations.Migration):

dependencies = [
('python', '0001_initial'),
("python", "0001_initial"),
]

operations = [
migrations.AddField(
model_name='pythonpackagecontent',
name='python_version',
field=models.TextField(default=''),
model_name="pythonpackagecontent",
name="python_version",
field=models.TextField(default=""),
preserve_default=False,
),
]
42 changes: 33 additions & 9 deletions pulp_python/app/migrations/0003_new_sync_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,47 @@
class Migration(migrations.Migration):

dependencies = [
('python', '0002_pythonpackagecontent_python_version'),
("python", "0002_pythonpackagecontent_python_version"),
]

operations = [
migrations.AddField(
model_name='pythonremote',
name='exclude_platforms',
field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=10), choices=[('windows', 'windows'), ('macos', 'macos'), ('freebsd', 'freebsd'), ('linux', 'linux')], default=list, size=None),
model_name="pythonremote",
name="exclude_platforms",
field=django.contrib.postgres.fields.ArrayField(
base_field=models.CharField(blank=True, max_length=10),
choices=[
("windows", "windows"),
("macos", "macos"),
("freebsd", "freebsd"),
("linux", "linux"),
],
default=list,
size=None,
),
),
migrations.AddField(
model_name='pythonremote',
name='keep_latest_packages',
model_name="pythonremote",
name="keep_latest_packages",
field=models.IntegerField(default=0),
),
migrations.AddField(
model_name='pythonremote',
name='package_types',
field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=15), choices=[('bdist_dmg', 'bdist_dmg'), ('bdist_dumb', 'bdist_dumb'), ('bdist_egg', 'bdist_egg'), ('bdist_msi', 'bdist_msi'), ('bdist_rpm', 'bdist_rpm'), ('bdist_wheel', 'bdist_wheel'), ('bdist_wininst', 'bdist_wininst'), ('sdist', 'sdist')], default=list, size=None),
model_name="pythonremote",
name="package_types",
field=django.contrib.postgres.fields.ArrayField(
base_field=models.CharField(blank=True, max_length=15),
choices=[
("bdist_dmg", "bdist_dmg"),
("bdist_dumb", "bdist_dumb"),
("bdist_egg", "bdist_egg"),
("bdist_msi", "bdist_msi"),
("bdist_rpm", "bdist_rpm"),
("bdist_wheel", "bdist_wheel"),
("bdist_wininst", "bdist_wininst"),
("sdist", "sdist"),
],
default=list,
size=None,
),
),
]
Loading