From 28627198babc6feefd2576855a5cf04f4556c128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 11 Nov 2021 09:17:39 +0100 Subject: [PATCH] Use stdlib functools.cached_property in Python 3.8+ Python 3.8+ has a functools.cached_property decorator in stdlib. Use it in place of third-party cached_property when available. --- gixy/core/regexp.py | 6 +++++- gixy/directives/block.py | 5 ++++- gixy/parser/raw_parser.py | 6 +++++- requirements.txt | 4 ++-- setup.py | 2 +- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/gixy/core/regexp.py b/gixy/core/regexp.py index 7a96187..f360604 100644 --- a/gixy/core/regexp.py +++ b/gixy/core/regexp.py @@ -3,7 +3,11 @@ import logging import re import random import itertools -from cached_property import cached_property + +try: + from functools import cached_property +except ImportError: + from cached_property import cached_property import gixy.core.sre_parse.sre_parse as sre_parse diff --git a/gixy/directives/block.py b/gixy/directives/block.py index 5e5b1ed..cc9bcb0 100644 --- a/gixy/directives/block.py +++ b/gixy/directives/block.py @@ -1,4 +1,7 @@ -from cached_property import cached_property +try: + from functools import cached_property +except ImportError: + from cached_property import cached_property from gixy.directives.directive import Directive from gixy.core.variable import Variable diff --git a/gixy/parser/raw_parser.py b/gixy/parser/raw_parser.py index 6a30b7f..0f43308 100644 --- a/gixy/parser/raw_parser.py +++ b/gixy/parser/raw_parser.py @@ -1,7 +1,11 @@ import logging import codecs import six -from cached_property import cached_property + +try: + from functools import cached_property +except ImportError: + from cached_property import cached_property from pyparsing import ( Literal, Suppress, White, Word, alphanums, Forward, Group, Optional, Combine, diff --git a/requirements.txt b/requirements.txt index dbf6d5f..47a1b54 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pyparsing>=1.5.5 -cached-property>=1.2.0 +cached-property>=1.2.0;python_version<"3.8" argparse>=1.4.0 six>=1.1.0 Jinja2>=2.8 -ConfigArgParse>=0.11.0 \ No newline at end of file +ConfigArgParse>=0.11.0 diff --git a/setup.py b/setup.py index ccc2ace..e57842b 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ setup( url='https://github.com/yandex/gixy', install_requires=[ 'pyparsing>=1.5.5', - 'cached-property>=1.2.0', + 'cached-property>=1.2.0;python_version<"3.8"', 'argparse>=1.4.0;python_version<"3.2"', 'six>=1.1.0', 'Jinja2>=2.8',