Repository: funnel-io/json-normalize (language: python)

Issue:
Cannot be imported with Python 3.7
Issue: 
```
pypi__json_normalize/json_normalize/main.py", line 3, in <module>
    from typing import (
ImportError: cannot import name 'Literal' from 'typing'
```
`Literal` is only available in Python 3.8 and higher. 

Solution:
```
from typing_extensions import Literal
```


Discussion / hints:
Solution:
https://stackoverflow.com/a/67193166

Fix patch:
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index 3bfabfc..6d518a0 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -18,15 +18,14 @@ jobs:
     runs-on: ubuntu-latest
 
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v2
+      uses: actions/setup-python@v5
       with:
         python-version: '3.x'
     - name: Install dependencies
       run: |
-        python -m pip install --upgrade pip
-        pip install build
+        python -m pip install --upgrade build pip
     - name: Build package
       run: python -m build
     - name: Publish package
diff --git a/Makefile b/Makefile
index 9201071..6e0a5b6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,8 @@
-dist: clean-dist venv
-	. venv/bin/activate && \
-	pip3 install --upgrade pip build twine && \
-	python3 -m build .
-
 setup: venv
 
+dist: clean-dist venv
+	. venv/bin/activate && python3 -m build .
+
 venv: dev-requirements.txt
 	virtualenv venv --python=${PYTHON_VERSION}
 	. venv/bin/activate && \
@@ -12,11 +10,6 @@ venv: dev-requirements.txt
 	pip3 install \
 	--requirement dev-requirements.txt
 
-.PHONY: test
-test: venv
-	@ . venv/bin/activate && PYTHONPATH=src/ pytest -vv -rsx tests/ src/ --cov ./src/json_normalize/ --no-cov-on-fail --cov-report term-missing --doctest-modules --doctest-continue-on-failure
-	@ . venv/bin/activate && flake8  src --exclude '#*,~*,.#*'
-
 .PHONY: clean
 clean: clean-dist
 	rm -rf venv
@@ -26,3 +19,15 @@ clean-dist:
 	rm -rf build
 	rm -rf src/json_normalize.egg-info
 	rm -rf dist
+
+.PHONY: test
+test: venv
+	@ . venv/bin/activate && PYTHONPATH=src/ pytest -vv -rsx tests/ src/ --cov ./src/json_normalize/ --no-cov-on-fail --cov-report term-missing --doctest-modules --doctest-continue-on-failure
+	@ . venv/bin/activate && flake8 src --exclude '#*,~*,.#*'
+	@ . venv/bin/activate && black --check src/ tests/
+
+.PHONY: test-focus
+test-focus: venv
+	@ . venv/bin/activate && PYTHONPATH=src/ pytest -vv -m focus -rsx tests/ src/ --cov ./src/json_normalize/ --no-cov-on-fail --cov-report term-missing --doctest-modules --doctest-continue-on-failure
+	@ . venv/bin/activate && flake8 src --exclude '#*,~*,.#*'
+	@ . venv/bin/activate && black --check src/ tests/
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 804b11c..7ed7a1a 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,5 +1,7 @@
-flake8
 black
+build
+flake8
 pytest
 pytest-clarity
-pytest-cov
\ No newline at end of file
+pytest-cov
+twine
diff --git a/setup.cfg b/setup.cfg
index f13c4bb..cdbff55 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -14,16 +14,17 @@ classifiers =
   Development Status :: 5 - Production/Stable
   License :: OSI Approved :: MIT License
   Programming Language :: Python :: 3
-  Programming Language :: Python :: 3.7
   Programming Language :: Python :: 3.8
   Programming Language :: Python :: 3.9
   Programming Language :: Python :: 3.10
+  Programming Language :: Python :: 3.11
+  Programming Language :: Python :: 3.12
   Topic :: Software Development :: Libraries
 keywords = JSON
 license = MIT
 long_description = file: README.md
 long_description_content_type = text/markdown
-requires_python = ~=3.7
+requires_python = ~=3.8
 project_urls =
   Bug Reports = https://github.com/funnel-io/json-normalize/issues
   Source = https://github.com/funnel-io/json-normalize


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 705062e..28f0ed9 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -7,9 +7,13 @@ on:
 jobs:
   build:
     runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
 
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v4
 
       - name: install virtual env
         run: |
diff --git a/pytest.ini b/pytest.ini
new file mode 100644
index 0000000..3e1949c
--- /dev/null
+++ b/pytest.ini
@@ -0,0 +1,3 @@
+[pytest]
+markers =
+    focus: the test to work on now