Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reset hdbscan in numpy2 migrator #30

Merged
merged 1 commit into from
Aug 13, 2024

Conversation

jakirkham
Copy link
Contributor

Recently the bot close the NumPy 2 migration for hdbscan: conda-forge/hdbscan-feedstock#64

However as the work wasn't actually done to migrate the feedstock, the bot should have started a new migrator. Instead the bot marked it done

This clears out the NumPy 2 migration status for hdbscan so it can get a fresh migrator PR

@jakirkham
Copy link
Contributor Author

Looks like there are some unrelated pydantic test failures on CI:

=================================== FAILURES ===================================
____________________ test_model_valid[node_attrs-ucx-split] ____________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
valid_feedstock = 'ucx-split'

    def test_model_valid(model: PerPackageModel, valid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{valid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       model.model.validate_json(node_attrs)

../cf-scripts/tests/model/test_validate.py:200: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../../miniconda3/envs/cf-scripts/lib/python3.11/site-packages/pydantic/type_adapter.py:142: in wrapped
    return func(self, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>
data = '{\n "archived": false,\n "branch": "main",\n "conda-forge.yml": {\n  "azure": {\n   "free_disk_space": true,\n   "sto...7.0.tar.gz",\n "version": "1.16.0",\n "version_pr_info": {\n  "__lazy_json__": "version_pr_info/ucx-split.json"\n }\n}'

    @_frame_depth(1)
    def validate_json(
        self, data: str | bytes, /, *, strict: bool | None = None, context: dict[str, Any] | None = None
    ) -> T:
        """Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing
    
        Validate a JSON string or bytes against the model.
    
        Args:
            data: The JSON data to validate against the model.
            strict: Whether to strictly check types.
            context: Additional context to use during validation.
    
        Returns:
            The validated object.
        """
>       return self.validator.validate_json(data, strict=strict, context=context)
E       pydantic_core._pydantic_core.ValidationError: 2 validation errors for union[function-after[check_version_match(), function-after[check_all_platform_infos_present(), NodeAttributesValid]],NodeAttributesError]
E       function-after[check_version_match(), function-after[check_all_platform_infos_present(), NodeAttributesValid]]
E         Value error, The top-level `version` field must match at least one of the `outputs[].version` fields in the `meta_yaml` field. [type=value_error, input_value={'archived': False, 'bran...r_info/ucx-split.json'}}, input_type=dict]
E           For further information visit https://errors.pydantic.dev/2.8/v/value_error
E       NodeAttributesError.parsing_error
E         Input should be a valid string [type=string_type, input_value=False, input_type=bool]
E           For further information visit https://errors.pydantic.dev/2.8/v/string_type

../../../../miniconda3/envs/cf-scripts/lib/python3.11/site-packages/pydantic/type_adapter.py:391: ValidationError
_______________ test_model_invalid[node_attrs-sqlalchemy-drill] ________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'sqlalchemy-drill'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
_____________________ test_model_invalid[node_attrs-mamba] _____________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'mamba'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
_____________________ test_model_invalid[node_attrs-r-v8] ______________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'r-v8'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
_____________________ test_model_invalid[node_attrs-root] ______________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'root'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
__________________ test_model_valid[pr_info-fluidfft-fftwmpi] __________________

model = PerPackageModel(base_path=PosixPath('pr_info'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1c326b10>, bad_feedstocks={'python', 'font-ttf-noto-emoji'}, must_exist=True)
valid_feedstock = 'fluidfft-fftwmpi'

    def test_model_valid(model: PerPackageModel, valid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{valid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       model.model.validate_json(node_attrs)

../cf-scripts/tests/model/test_validate.py:200: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../../miniconda3/envs/cf-scripts/lib/python3.11/site-packages/pydantic/type_adapter.py:142: in wrapped
    return func(self, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pydantic.type_adapter.TypeAdapter object at 0x7fab1c326b10>
data = '{\n "bad": false,\n "pre_pr_migrator_attempts": {\n  "numpy2": 135,\n  "openmpi5": 152,\n  "python312": 67\n },\n "pr...jinja template in /tmp/tmpla_vctmv/fluidfft-fftwmpi-feedstock/recipe/meta.yaml:\\n\'mpi\' is undefined\\n\\n\'"\n }\n}'

    @_frame_depth(1)
    def validate_json(
        self, data: str | bytes, /, *, strict: bool | None = None, context: dict[str, Any] | None = None
    ) -> T:
        """Usage docs: https://docs.pydantic.dev/2.8/concepts/json/#json-parsing
    
        Validate a JSON string or bytes against the model.
    
        Args:
            data: The JSON data to validate against the model.
            strict: Whether to strictly check types.
            context: Additional context to use during validation.
    
        Returns:
            The validated object.
        """
>       return self.validator.validate_json(data, strict=strict, context=context)
E       pydantic_core._pydantic_core.ValidationError: 1 validation error for PrInfoValid
E         Value error, The keys (migration names) of pre_pr_migrator_status and pre_pr_migrator_attempts must match. [type=value_error, input_value={'bad': False, 'pre_pr_mi...\' is undefined\n\n\''}}, input_type=dict]
E           For further information visit https://errors.pydantic.dev/2.8/v/value_error

../../../../miniconda3/envs/cf-scripts/lib/python3.11/site-packages/pydantic/type_adapter.py:391: ValidationError
_____________________ test_model_invalid[node_attrs-cubed] _____________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'cubed'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
_____________________ test_model_invalid[node_attrs-pytao] _____________________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'pytao'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
_____________ test_model_invalid[node_attrs-textual-fastdatatable] _____________

model = PerPackageModel(base_path=PosixPath('node_attrs'), model=<pydantic.type_adapter.TypeAdapter object at 0x7fab1bf23950>,...'pnab', 'stats_arrays', 'alibabacloud-openapi-util', 'path.py', 'sparc-x', 'pyrosm', 'birka', 'gulp'}, must_exist=True)
invalid_feedstock = 'textual-fastdatatable'

    def test_model_invalid(model: PerPackageModel, invalid_feedstock: str):
        path = get_sharded_path(model.base_path / f"{invalid_feedstock}.json")
        try:
            with open(path) as f:
                node_attrs = f.read()
        except FileNotFoundError:
            if model.must_exist:
                raise
            pytest.skip(f"{path} does not exist")
    
>       with pytest.raises(ValidationError):
E       Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>

../cf-scripts/tests/model/test_validate.py:213: Failed
=============================== warnings summary ===============================
../cf-scripts/tests/model/test_validate.py:146
  /home/runner/work/cf-graph-countyfair/cf-graph-countyfair/cf-scripts/tests/model/test_validate.py:146: UserWarning: Some feedstocks are mentioned as bad feedstock but do not exist: {'libtk'}
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================= slowest 10 durations =============================
2.58s teardown cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-gpustat]
1.88s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-ctng-compiler-activation]
1.50s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-r-iotools]
1.10s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-aiida-cp2k]
0.76s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-fx-gltf]
0.51s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-gengetopt]
0.28s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-ipysheet]
0.07s call     cf-scripts/tests/model/test_validate.py::test_model_valid[pr_info-pari-seadata-small]
0.05s call     cf-scripts/tests/model/test_validate.py::test_model_valid[pr_info-conda-forge-pinning]
0.05s call     cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-ctng-compilers]
=========================== short test summary info ============================
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_valid[node_attrs-ucx-split] - pydantic_core._pydantic_core.ValidationError: 2 validation errors for union[function-after[check_version_match(), function-after[check_all_platform_infos_present(), NodeAttributesValid]],NodeAttributesError]
function-after[check_version_match(), function-after[check_all_platform_infos_present(), NodeAttributesValid]]
  Value error, The top-level `version` field must match at least one of the `outputs[].version` fields in the `meta_yaml` field. [type=value_error, input_value={'archived': False, 'bran...r_info/ucx-split.json'}}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.8/v/value_error
NodeAttributesError.parsing_error
  Input should be a valid string [type=string_type, input_value=False, input_type=bool]
    For further information visit https://errors.pydantic.dev/2.8/v/string_type
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-sqlalchemy-drill] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-mamba] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-r-v8] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-root] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_valid[pr_info-fluidfft-fftwmpi] - pydantic_core._pydantic_core.ValidationError: 1 validation error for PrInfoValid
  Value error, The keys (migration names) of pre_pr_migrator_status and pre_pr_migrator_attempts must match. [type=value_error, input_value={'bad': False, 'pre_pr_mi...\' is undefined\n\n\''}}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.8/v/value_error
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-cubed] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-pytao] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
FAILED ../cf-scripts/tests/model/test_validate.py::test_model_invalid[node_attrs-textual-fastdatatable] - Failed: DID NOT RAISE <class 'pydantic_core._pydantic_core.ValidationError'>
===== 9 failed, 105259 passed, 586 skipped, 1 warning in 149.94s (0:02:29) =====

@jakirkham
Copy link
Contributor Author

@beckermr could you please review?

@beckermr beckermr merged commit b9746ca into regro:master Aug 13, 2024
1 of 2 checks passed
@jakirkham jakirkham deleted the reset_hdbscan_numpy2 branch August 13, 2024 08:54
@jakirkham
Copy link
Contributor Author

Thanks Matt! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants