프로젝트 구조 및 설명
IRSx는 미국 세무서(IRS)의 990 양식 XML 파일을 표준화된 파이썬 객체, JSON, 또는 인간이 읽기 쉬운 텍스트 형식으로 변환하는 도구입니다. 프로젝트의 주요 디렉터리 구조는 다음과 같습니다:
irsx/
├── irs_reader/
│ ├── __init__.py
│ ├── metadata/
│ │ ├── __init__.py
│ │ └── ...
│ ├── samples/
│ │ └── ...
│ ├── __main__.py
│ ├── architecture.md
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── MANIFEST.in
│ ├── README.md
│ ├── roadmap.md
│ ├── setup.cfg
│ ├── setup.py
│ ├── tests.py
│ └── tox.ini
├── .gitignore
├── .gitmodules
└── ...
디렉터리 구성 요소 설명
- irs_reader/: 핵심 로직이 포함된 메인 코드 폴더로, 990 XML 데이터를 파싱하고 처리하는 기능을 담당합니다.
- __init__.py: 패키지 초기화 파일이며, 모듈 간의 연결을 설정합니다.
- metadata/: 양식 필드 정의, 변수 매핑, 스키마 정보 등 메타데이터를 저장합니다.
- samples/: 실제 990 파일 예제를 포함하며, 테스트 및 사용법 확인에 활용됩니다.
- __main__.py: 명령줄 인터페이스를 제공하는 진입점 파일입니다. 이 파일을 통해 프로그램 실행이 가능합니다.
- architecture.md: 시스템 아키텍처와 컴포넌트 간 관계를 문서화한 파일입니다.
- CHANGELOG.md: 각 버전별 변경 사항을 기록합니다.
- LICENSE: 프로젝트 라이선스 정보 (MIT)를 포함합니다.
- MANIFEST.in: 배포 패키지에 포함될 파일 목록을 정의합니다.
- README.md: 설치 방법, 사용 예시, 기능 안내 등 기본 정보가 포함됩니다.
- roadmap.md: 개발 방향성과 계획된 기능 목록을 제시합니다.
- setup.cfg: 패키지 설치 설정 및 의존성 정보를 포함합니다.
- setup.py: 패키지 빌드 및 설치를 위한 스크립트입니다.
- tests.py: 단위 테스트 코드가 작성된 파일입니다.
- tox.ini: 다양한 파이썬 환경에서 자동 테스트를 수행하기 위한 설정 파일입니다.
- .gitignore: Git에 추적하지 않아야 할 파일들을 지정합니다.
- .gitmodules: 외부 저장소를 포함하는 서브모듈 설정을 관리합니다.
실행 방법
IRSx는 명령줄 도구로 제공되며, irs_reader/__main__.py 파일이 실행 포인트입니다.
다음 두 가지 방식으로 프로그램을 시작할 수 있습니다:
python -m irs_reader
irsx
이후에는 특정 990 XML 파일을 인수로 전달하여 분석을 시작할 수 있습니다.
설정 파일 설명
프로젝트는 주로 두 가지 설정 파일을 사용합니다: setup.cfg과 tox.ini.
setup.cfg
패키지 정보, 의존성, 설치 옵션 등을 정의하는 구성 파일입니다.
[metadata]
name = irsx
version = 0.1
description = Convert IRS 990 XML nonprofit tax returns into structured Python objects, JSON, or readable text with original line numbers and descriptions
author = jsfenfen
license = MIT
[options]
packages = find:
install_requires =
lxml
requests
...
tox.ini
다중 파이썬 버전에서 자동 테스트를 수행하도록 설정합니다.
[tox]
envlist = py36,py37,py38
[testenv]
deps =
pytest
commands =
pytest tests.py
이러한 설정을 통해 프로젝트는 쉽게 설치, 테스트, 유지보수가 가능합니다.