Skip to content

Commit

Permalink
chore: remove azure-core dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
LeonardHd committed Aug 18, 2024
1 parent d9c8095 commit 2cb0a88
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 197 deletions.
193 changes: 2 additions & 191 deletions poetry.lock

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ license = { file="LICENSE" }
keywords = ["fabric", "datafactory", "unit-testing", "functional-testing", "azure"]

dependencies = [
"azure-core>=1.29.5,<2.0.0",
"lark>=1.1.8,<2.0.0",
"pythonnet>=3.0.3,<4.0.0"
]
Expand All @@ -35,7 +34,6 @@ package-mode = false

[tool.poetry.dependencies]
python = ">=3.9,<3.13"
azure-core = "^1.29.5"
lark = "^1.1.8"
pythonnet = "^3.0.3"

Expand Down
65 changes: 65 additions & 0 deletions src/data_factory_testing_framework/_enum_meta.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# --------------------------------------------------------------------------
#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# The MIT License (MIT)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the ""Software""), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#
# --------------------------------------------------------------------------
from enum import Enum, EnumMeta
from typing import Any


class CaseInsensitiveEnumMeta(EnumMeta):
"""Enum metaclass to allow for interoperability with case-insensitive strings.
Consuming this metaclass in an SDK should be done in the following manner:
.. code-block:: python
from enum import Enum
from azure.core import CaseInsensitiveEnumMeta
class MyCustomEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta):
FOO = 'foo'
BAR = 'bar'
"""

def __getitem__(cls, name: str) -> Any: # noqa: N805, ANN401
return super(CaseInsensitiveEnumMeta, cls).__getitem__(name.upper())

def __getattr__(cls, name: str) -> Enum: # noqa: N805
"""Return the enum member matching `name`.
We use __getattr__ instead of descriptors or inserting into the enum
class' __dict__ in order to support `name` and `value` being both
properties for enum members (which live in the class' __dict__) and
enum members themselves.
:param str name: The name of the enum member to retrieve.
:rtype: ~azure.core.CaseInsensitiveEnumMeta
:return: The enum member matching `name`.
:raises AttributeError: If `name` is not a valid enum member.
"""
try:
return cls._member_map_[name.upper()]
except KeyError as err:
raise AttributeError(name) from err
3 changes: 1 addition & 2 deletions src/data_factory_testing_framework/_test_framework.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from enum import Enum
from typing import Iterator, List, Optional

from azure.core import CaseInsensitiveEnumMeta

from data_factory_testing_framework._enum_meta import CaseInsensitiveEnumMeta
from data_factory_testing_framework._repositories._factories.data_factory_repository_factory import (
DataFactoryRepositoryFactory,
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from enum import Enum

from azure.core import CaseInsensitiveEnumMeta
from data_factory_testing_framework._enum_meta import CaseInsensitiveEnumMeta


class DependencyCondition(str, Enum, metaclass=CaseInsensitiveEnumMeta):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from enum import Enum

from azure.core import CaseInsensitiveEnumMeta
from data_factory_testing_framework._enum_meta import CaseInsensitiveEnumMeta


class RunParameterType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
Expand Down

0 comments on commit 2cb0a88

Please sign in to comment.