Skip to content

Commit 40feb68

Browse files
authored
feat: add high level imports (#70)
* chore: disable fail fast on pre-commit Signed-off-by: heitorlessa <[email protected]> * feat: add core utilities as high level imports * chore: update to high level imports * fix: flake8 exclude and specific files * chore: remove fail_fast param completely Signed-off-by: heitorlessa <[email protected]> * fix: separate logging import into separate file
1 parent b723095 commit 40feb68

File tree

25 files changed

+85
-71
lines changed

25 files changed

+85
-71
lines changed

.flake8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[flake8]
2-
exclude = docs, .eggs, setup.py, example, .aws-sam
2+
exclude = docs, .eggs, setup.py, example, .aws-sam, .git, dist, *.md, *.yaml, example/samconfig.toml, *.txt, *.ini
33
ignore = E203, E266, W503, BLK100, W291, I004
44
max-line-length = 120
55
max-complexity = 15

.pre-commit-config.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,3 @@ repos:
3535
language: system
3636
types: [python]
3737
exclude: example
38-
fail_fast: true

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ format:
1515
poetry run black aws_lambda_powertools tests
1616

1717
lint: format
18-
poetry run flake8
18+
poetry run flake8 aws_lambda_powertools/* tests/* example/*
1919

2020
test:
2121
poetry run pytest -vvv --cov=./ --cov-report=xml

aws_lambda_powertools/__init__.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
# -*- coding: utf-8 -*-
22

33
"""Top-level package for Lambda Python Powertools."""
4-
import logging
4+
5+
6+
from .logging import Logger # noqa: F401
7+
from .metrics import Metrics, single_metric # noqa: F401
8+
from .package_logger import set_package_logger_handler
9+
from .tracing import Tracer # noqa: F401
510

611
__author__ = """Amazon Web Services"""
712

8-
logger = logging.getLogger("aws_lambda_powertools")
9-
logger.addHandler(logging.NullHandler())
10-
logger.propagate = False
13+
set_package_logger_handler()

aws_lambda_powertools/logging/logger.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def logger_setup(
125125
-------
126126
**Logger class - Same UX**
127127
128-
from aws_lambda_powertools.logging import Logger
128+
from aws_lambda_powertools import Logger
129129
logger = Logger(service="payment") # same env var still applies
130130
131131
"""
@@ -143,7 +143,7 @@ def logger_inject_lambda_context(
143143
-------
144144
**Logger class - Same UX**
145145
146-
from aws_lambda_powertools.logging import Logger
146+
from aws_lambda_powertools import Logger
147147
logger = Logger(service="payment") # same env var still applies
148148
@logger.inject_lambda_context
149149
def handler(evt, ctx):
@@ -307,7 +307,7 @@ class Logger(logging.Logger):
307307
-------
308308
**Setups structured logging in JSON for Lambda functions with explicit service name**
309309
310-
>>> from aws_lambda_powertools.logging import Logger
310+
>>> from aws_lambda_powertools import Logger
311311
>>> logger = Logger(service="payment")
312312
>>>
313313
>>> def handler(event, context):
@@ -317,15 +317,15 @@ class Logger(logging.Logger):
317317
318318
$ export POWERTOOLS_SERVICE_NAME="payment"
319319
$ export POWERTOOLS_LOGGER_SAMPLE_RATE=0.01 # 1% debug sampling
320-
>>> from aws_lambda_powertools.logging import Logger
320+
>>> from aws_lambda_powertools import Logger
321321
>>> logger = Logger()
322322
>>>
323323
>>> def handler(event, context):
324324
logger.info("Hello")
325325
326326
**Append payment_id to previously setup structured log logger**
327327
328-
>>> from aws_lambda_powertools.logging import Logger
328+
>>> from aws_lambda_powertools import Logger
329329
>>> logger = Logger(service="payment")
330330
>>>
331331
>>> def handler(event, context):
@@ -398,7 +398,7 @@ def inject_lambda_context(self, lambda_handler: Callable[[Dict, Any], Any] = Non
398398
-------
399399
**Captures Lambda contextual runtime info (e.g memory, arn, req_id)**
400400
401-
from aws_lambda_powertools.logging import Logger
401+
from aws_lambda_powertools import Logger
402402
403403
logger = Logger(service="payment")
404404
@@ -408,7 +408,7 @@ def handler(event, context):
408408
409409
**Captures Lambda contextual runtime info and logs incoming request**
410410
411-
from aws_lambda_powertools.logging import Logger
411+
from aws_lambda_powertools import Logger
412412
413413
logger = Logger(service="payment")
414414

aws_lambda_powertools/metrics/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""CloudWatch Embedded Metric Format utility
22
"""
3-
from aws_lambda_powertools.helper.models import MetricUnit
4-
3+
from ..helper.models import MetricUnit
54
from .exceptions import MetricUnitError, MetricValueError, SchemaValidationError, UniqueNamespaceError
65
from .metric import single_metric
76
from .metrics import Metrics

aws_lambda_powertools/metrics/base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99

1010
import fastjsonschema
1111

12-
from aws_lambda_powertools.helper.models import MetricUnit
13-
12+
from ..helper.models import MetricUnit
1413
from .exceptions import MetricUnitError, MetricValueError, SchemaValidationError, UniqueNamespaceError
1514

1615
logger = logging.getLogger(__name__)

aws_lambda_powertools/metrics/metric.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
from contextlib import contextmanager
44
from typing import Dict
55

6-
from aws_lambda_powertools.helper.models import MetricUnit
7-
from aws_lambda_powertools.metrics.base import MetricManager
6+
from ..helper.models import MetricUnit
7+
from .base import MetricManager
88

99
logger = logging.getLogger(__name__)
1010

@@ -69,7 +69,8 @@ def single_metric(name: str, unit: MetricUnit, value: float, namespace: str = No
6969
-------
7070
**Creates cold start metric with function_version as dimension**
7171
72-
from aws_lambda_powertools.metrics import single_metric, MetricUnit
72+
from aws_lambda_powertools import single_metric
73+
from aws_lambda_powertools.metrics import MetricUnit
7374
7475
with single_metric(name="ColdStart", unit=MetricUnit.Count, value=1, namespace="ServerlessAirline") as metric:
7576
metric.add_dimension(name="function_version", value=47)
@@ -78,7 +79,8 @@ def single_metric(name: str, unit: MetricUnit, value: float, namespace: str = No
7879
7980
$ export POWERTOOLS_METRICS_NAMESPACE="ServerlessAirline"
8081
81-
from aws_lambda_powertools.metrics import single_metric, MetricUnit
82+
from aws_lambda_powertools import single_metric
83+
from aws_lambda_powertools.metrics import MetricUnit
8284
8385
with single_metric(name="ColdStart", unit=MetricUnit.Count, value=1) as metric:
8486
metric.add_dimension(name="function_version", value=47)

aws_lambda_powertools/metrics/metrics.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import os
55
from typing import Any, Callable
66

7-
from aws_lambda_powertools.metrics.base import MetricManager
7+
from .base import MetricManager
88

99
logger = logging.getLogger(__name__)
1010

@@ -30,7 +30,7 @@ class Metrics(MetricManager):
3030
-------
3131
**Creates a few metrics and publish at the end of a function execution**
3232
33-
from aws_lambda_powertools.metrics import Metrics
33+
from aws_lambda_powertools import Metrics
3434
3535
metrics = Metrics(namespace="ServerlessAirline", service="payment")
3636
metrics.add_metric(name="ColdStart", unit=MetricUnit.Count, value=1)

aws_lambda_powertools/middleware_factory/factory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def lambda_handler(event, context):
7676
7777
**Trace execution of custom middleware**
7878
79-
from aws_lambda_powertools.tracing import Tracer
79+
from aws_lambda_powertools import Tracer
8080
from aws_lambda_powertools.middleware_factory import lambda_handler_decorator
8181
8282
tracer = Tracer(service="payment") # or via env var

0 commit comments

Comments
 (0)