Skip to content

Commit

Permalink
[MISC] Switch to Ruff (#130)
Browse files Browse the repository at this point in the history
* Ruff config

* Linting
  • Loading branch information
dragomirp authored Aug 22, 2023
1 parent 1f4478d commit 9698a96
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 240 deletions.
1 change: 1 addition & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
- renovate.json
- poetry.lock
- pyproject.toml
- '.github/workflows/ci.yaml'

jobs:
ci-tests:
Expand Down
26 changes: 14 additions & 12 deletions lib/charms/pgbouncer_k8s/v0/pgb.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
LIBAPI = 0
# Increment this PATCH version before using `charmcraft publish-lib` or reset
# to 0 if you are raising the major API version
LIBPATCH = 7
LIBPATCH = 8

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -134,6 +134,8 @@ def __init__(
Args:
config: an existing config. Can be passed in as a string, dict, or PgbConfig object.
pgb.DEFAULT_CONFIG can be used here as a default dict.
args: arguments.
kwargs: keyword arguments.
"""
self.__dict__.update(*args, **kwargs)

Expand Down Expand Up @@ -180,29 +182,29 @@ def items(self):
"""Returns items of PgbConfig object."""
return self.__dict__.items()

def read_dict(self, input: Dict) -> None:
def read_dict(self, data: Dict) -> None:
"""Populates this object from a dictionary.
Args:
input: Dict to be read into this object. This dict must follow the pgbouncer config
spec (https://pgbouncer.org/config.html) to pass validation, implementing each
section as its own subdict. Lists should be represented as python lists, not
comma-separated strings.
data: Dict to be read into this object. This dict must follow the pgbouncer config
spec (https://pgbouncer.org/config.html) to pass validation, implementing each
section as its own subdict. Lists should be represented as python lists, not
comma-separated strings.
"""
self.update(deepcopy(input))
self.update(deepcopy(data))
self.validate()

def read_string(self, input: str) -> None:
def read_string(self, data: str) -> None:
"""Populates this class from a pgbouncer.ini file, passed in as a string.
Args:
input: pgbouncer.ini file to be parsed, represented as a string. This string must
follow the pgbouncer config spec (https://pgbouncer.org/config.html)
data: pgbouncer.ini file to be parsed, represented as a string. This string must
follow the pgbouncer config spec (https://pgbouncer.org/config.html)
"""
# Since the parser persists data across reads, we have to create a new one for every read.
parser = ConfigParser()
parser.optionxform = str
parser.read_string(input)
parser.read_string(data)

self.update(deepcopy(dict(parser)))
# Convert Section objects to dictionaries, so they can hold dictionaries themselves.
Expand Down Expand Up @@ -235,7 +237,7 @@ def _parse_complex_variables(self) -> None:
except KeyError as err:
raise PgbConfig.ConfigParsingError(source=str(err))

for name, cfg_string in self.get(users, dict()).items():
for name, cfg_string in self.get(users, {}).items():
self[users][name] = parse_kv_string_to_dict(cfg_string)

for user_type in PgbConfig.user_types:
Expand Down
Loading

0 comments on commit 9698a96

Please sign in to comment.