Skip to content

Commit

Permalink
v1.4
Browse files Browse the repository at this point in the history
V1.4
  • Loading branch information
takline committed Aug 8, 2024
1 parent abcc3d6 commit c2267f8
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 115 deletions.
138 changes: 86 additions & 52 deletions .github/workflows/publish-to-pypi.yaml
Original file line number Diff line number Diff line change
@@ -1,54 +1,79 @@
on:
push:
tags:
- 'v*'
name: publish
jobs:
test:
runs-on: ubuntu-latest
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests with pytest
run: |
pytest tests/ --junitxml=tests/test-results.xml --tb=long -vv --cov=./ --cov-report=xml:tests/coverage.xml
continue-on-error: true

- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: test-results
path: tests/test-results.xml

- name: Upload coverage results
if: always()
uses: actions/upload-artifact@v3
with:
name: coverage-results
path: tests/coverage.xml

- name: Annotate the test results
if: failure()
uses: dorny/test-reporter@v1
with:
name: Pytest
path: tests/test-results.xml
reporter: pytest
build:
- name: Build distribution 📦
name: Build distribution 📦
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/
publish-to-pypi:
name: >-
Publish Python 🐍 distribution 📦 to PyPI
if: startsWith(github.ref, 'refs/tags/')
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/ResumeGPT
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
steps:
- name: Download all the dists
uses: actions/download-artifact@v3
- name: Install build dependencies
run: |
python3 -m pip install --upgrade pip
python3 -m pip install build
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
github-release:
name: >-
Sign the Python 🐍 distribution 📦 with Sigstore
and upload them to GitHub Release
needs:
- publish-to-pypi
name: Sign the Python 🐍 dist 📦 with Sigstore and upload them to GitHub Release
needs: build
runs-on: ubuntu-latest

permissions:
contents: write
id-token: write
Expand All @@ -61,24 +86,33 @@ jobs:
- name: Sign the dists with Sigstore
uses: sigstore/gh-action-sigstore-python@v2.1.1
with:
inputs: >-
inputs: |
./dist/*.tar.gz
./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: >-
gh release create
'${{ github.ref_name }}'
--repo '${{ github.repository }}'
--notes ""
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create '${{ github.ref_name }}' --repo '${{ github.repository }}' --notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: >-
gh release upload
'${{ github.ref_name }}' dist/**
--repo '${{ github.repository }}'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}'
publish-to-pypi:
name: Publish Python 🐍 distribution 📦 to PyPI
runs-on: ubuntu-latest
needs: github-release
environment:
name: pypi
url: https://pypi.org/p/ResumeGPT
steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI }}
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

</p>


<br>


Expand Down Expand Up @@ -64,6 +65,7 @@ pip install git+https://github.com/takline/ResumeGPT.git

or:


```bash
git clone https://github.com/takline/ResumeGPT.git
cd ResumeGPT
Expand Down Expand Up @@ -191,4 +193,3 @@ Feel free to give feedback, ask questions, report a bug, or suggest improvements
⭐️ Please star, fork, explore, and contribute to ResumeGPT. There's a lot of work room for improvement so any contributions are appreciated.



4 changes: 2 additions & 2 deletions config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
CHAT_MODEL = ChatOpenAI
MODEL_NAME = "gpt-4o"
TEMPERATURE = 0.3
OPEN_FILE_COMMAND = "cursor -r"
# OPEN_FILE_COMMAND = "code -r"
#OPEN_FILE_COMMAND = "cursor -r"
OPEN_FILE_COMMAND = "code -r"
MAX_CONCURRENT_WORKERS = 4
MAX_RETRIES = 3
BACKOFF_FACTOR = 5
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dependencies = [
"pytest>=8.2.2",
"free-proxy>=1.1.1"
]
keywords = ["resume", "job", "application", "automation"]
keywords = ["resume", "job", "application", "automation", "job search"]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python :: 3"
Expand Down
7 changes: 6 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@ configparser>=5.0.2
langchain==0.1.20
langchain-openai==0.1.6
langchain-core==0.1.52
langchain-community==0.0.38
pydantic==2.7.1
reportlab>=3.5.59
requests>=2.25.1
ruamel.yaml>=0.16.12
pytest>=8.2.2
free-proxy>=1.1.1
python-dateutil>=2.8.0
free-proxy>=1.1.1
Jinja2==3.1.4
PyYAML==5.3.1
pytest-cov==5.0.0
60 changes: 2 additions & 58 deletions services/resume_improver.py
Original file line number Diff line number Diff line change
Expand Up @@ -630,66 +630,10 @@ def create_pdf(self, auto_open=True):
Returns:
str: The file path to the generated PDF.
"""
parsed_yaml = utils.read_yaml(filename=self.yaml_loc)

def extract_education(education):
"""Extract education details from the resume.
Args:
education (list): The education data.
Returns:
list: A list of dictionaries containing degree and school information.
"""
return [
{"degree": degree, "school": edu["school"]}
for edu in education
for degree in edu["degrees"][0]["names"]
]

def extract_experience(experiences):
"""Extract experience details from the resume.
Args:
experiences (list): The experience data.
Returns:
list: A list of dictionaries containing title, company, location, duration, and description.
"""
return [
{
"title": title["name"],
"company": exp["company"],
"location": exp["location"],
"duration": f"{title['startdate']}-{title['enddate']}",
"description": exp["highlights"],
}
for exp in experiences
for title in exp["titles"]
]

def extract_skills(skills):
"""Extract skills details from the resume.
Args:
skills (list): The skills data.
Returns:
list: A list of formatted skills strings.
"""
return [
f"{skill['category']}: {', '.join(skill['skills'])}" for skill in skills
]

result = {
"education": extract_education(parsed_yaml.get("education", [])),
"objective": parsed_yaml.get("objective", ""),
"experiences": extract_experience(parsed_yaml.get("experiences", [])),
"skills": extract_skills(parsed_yaml.get("skills", [])),
}
pdf_generator = ResumePDFGenerator()
pdf_location = pdf_generator.generate_resume(
job_data_location=self.job_data_location, data=result
job_data_location=self.job_data_location,
data=utils.read_yaml(filename=self.yaml_loc),
)
if auto_open:
subprocess.run(config.OPEN_FILE_COMMAND.split(" ") + [pdf_location])
Expand Down

0 comments on commit c2267f8

Please sign in to comment.