From cdb566506cca9b19f0e9199ffd0f957f73d42dc2 Mon Sep 17 00:00:00 2001 From: Young Joon Lee Date: Tue, 9 Jul 2024 08:35:01 +0900 Subject: [PATCH 1/5] chore(nlp4ss): remove obsolete coursetempi module and related tests --- CHANGELOG.md | 29 ------------------- src/coursetempi/__cli__.py | 31 --------------------- src/coursetempi/__init__.py | 13 --------- src/coursetempi/_version.py | 1 - src/coursetempi/conf/about/coursetempi.yaml | 6 ---- src/coursetempi/py.typed | 0 tests/coursetempi/test_cli.py | 22 --------------- tests/coursetempi/test_init.py | 12 -------- 8 files changed, 114 deletions(-) delete mode 100644 CHANGELOG.md delete mode 100644 src/coursetempi/__cli__.py delete mode 100644 src/coursetempi/__init__.py delete mode 100644 src/coursetempi/_version.py delete mode 100644 src/coursetempi/conf/about/coursetempi.yaml delete mode 100644 src/coursetempi/py.typed delete mode 100644 tests/coursetempi/test_cli.py delete mode 100644 tests/coursetempi/test_init.py diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 11ca19a..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,29 +0,0 @@ - - -## v0.2.0 (2024-07-08) - -### Feature - -* **language_switcher:** Add language switcher functionality in multiple locations ([`5fce548`](https://github.com/entelecheia/course-template-i18n/commit/5fce548c5f291dcfdf147347722d950e8d6526a4)) -* **language:** Add language selector and post-processing script ([`c1e30f3`](https://github.com/entelecheia/course-template-i18n/commit/c1e30f331738e878134bfc921c4531a6ab3bf2b8)) -* **build:** Add build script for books with language support ([`d23760c`](https://github.com/entelecheia/course-template-i18n/commit/d23760c65b86512889313492dce24dc8f47b02ab)) -* **book:** Add publish script for building HTML ([`abdc4f1`](https://github.com/entelecheia/course-template-i18n/commit/abdc4f1e36f5f8b29980a63bebd4e09e53375e99)) -* **language_redirect:** Add language-based redirection logic ([`3b1f44b`](https://github.com/entelecheia/course-template-i18n/commit/3b1f44b3b6c58dd984fceddf4b37ae214698a8d8)) -* **language-selector:** Add CSS styles for language selector ([`b6c6dae`](https://github.com/entelecheia/course-template-i18n/commit/b6c6daebacc28f99d3cab16bc833959d221060a7)) -* **book:** Add Google Fonts integration ([`f44d6d7`](https://github.com/entelecheia/course-template-i18n/commit/f44d6d70191be5e3e34aac4ab46233b4efc9ba9f)) -* **language-selector:** Add styles for language selector ([`536f8cb`](https://github.com/entelecheia/course-template-i18n/commit/536f8cbaa7c70a87378bebe5eff7299883094193)) - -### Fix - -* **docs:** Update build script in deploy workflow ([`5c80307`](https://github.com/entelecheia/course-template-i18n/commit/5c80307549b6471ad426b09e3c850451482928c8)) -* **lang-redirect:** Correct redirection URL to include index.html ([`558959a`](https://github.com/entelecheia/course-template-i18n/commit/558959ab07188d011d47c5ca1cfbb8aa8e3b4a98)) - -## v0.1.0 (2024-07-07) - -### Feature - -* **config:** Update project to support internationalization ([`f9bfc0c`](https://github.com/entelecheia/course-template-i18n/commit/f9bfc0c992afcfb59c9ee092a028b3e172bc5b3f)) - -### Fix - -* **makefile:** Correct file paths in remove-template target ([`2a16e79`](https://github.com/entelecheia/course-template-i18n/commit/2a16e796626bb158338f667290e013f6f8875b35)) diff --git a/src/coursetempi/__cli__.py b/src/coursetempi/__cli__.py deleted file mode 100644 index f4479b8..0000000 --- a/src/coursetempi/__cli__.py +++ /dev/null @@ -1,31 +0,0 @@ -"""Command line interface for coursetempi""" - -# Importing the libraries - -import click - -from coursetempi._version import __version__ - - -@click.command() -@click.version_option(__version__) -@click.option("--count", "-c", default=1, help="Number of greetings.") -@click.option("--name", "-n", prompt="Your name", help="The person to greet.") -def main(count, name): - """ - This is the cli function of the package. - You can use this function to print a message to the user. - - Args: - count: The number of items to print - name: The name of the package that will be printed - """ - # Print a message to the user. - for _ in range(count): - click.echo(f"Hello, {name}!") - click.echo(f"This is coursetempi version {__version__}.") - - -# main function for the main module -if __name__ == "__main__": - main() diff --git a/src/coursetempi/__init__.py b/src/coursetempi/__init__.py deleted file mode 100644 index 8aca213..0000000 --- a/src/coursetempi/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from coursetempi._version import __version__ - - -def get_version() -> str: - """ - Get the version of the package. This is the cli function of the package. - If you want to check the version of the package you can use this function. - - - Returns: - The version of the package as a string e.g. "0.1.0" - """ - return __version__ diff --git a/src/coursetempi/_version.py b/src/coursetempi/_version.py deleted file mode 100644 index d3ec452..0000000 --- a/src/coursetempi/_version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.2.0" diff --git a/src/coursetempi/conf/about/coursetempi.yaml b/src/coursetempi/conf/about/coursetempi.yaml deleted file mode 100644 index 0599e41..0000000 --- a/src/coursetempi/conf/about/coursetempi.yaml +++ /dev/null @@ -1,6 +0,0 @@ -_open_link_: True -name: "Course Template Internationalization" -authors: "Young Joon Lee " -description: "Multilingual course creation template with interactive documentation support for international audiences" -homepage: "https://entelecheia.github.io/course-template-i18n" -license: "CC-BY-4.0" diff --git a/src/coursetempi/py.typed b/src/coursetempi/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/tests/coursetempi/test_cli.py b/tests/coursetempi/test_cli.py deleted file mode 100644 index 4a988f3..0000000 --- a/tests/coursetempi/test_cli.py +++ /dev/null @@ -1,22 +0,0 @@ -""" -test cli module -""" -import subprocess -from typing import List, Tuple - - -def capture(command: List[str]) -> Tuple[bytes, bytes, int]: - proc = subprocess.Popen( - command, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - ) - out, err = proc.communicate() - return out, err, proc.returncode - - -def test_cli() -> None: - """Test cli module""" - command = ["coursetempi", "--name", "test", "--count", "3"] - out, err, exitcode = capture(command) - assert exitcode == 0 diff --git a/tests/coursetempi/test_init.py b/tests/coursetempi/test_init.py deleted file mode 100644 index 27d74af..0000000 --- a/tests/coursetempi/test_init.py +++ /dev/null @@ -1,12 +0,0 @@ -from coursetempi import get_version - - -def test_get_version() -> None: - """ - Test the get_version function. - - version format: major.minor.patch[.devN+g] - """ - version = get_version() - # check version format - assert version.count(".") in range(2, 5) From 0835af6fe4dc3fdf2a19698db00efc5b0224e682 Mon Sep 17 00:00:00 2001 From: Young Joon Lee Date: Tue, 9 Jul 2024 08:42:40 +0900 Subject: [PATCH 2/5] refactor(naming): rename project from "course-template18n" to "nlp4ss" --- .copier-config.yaml | 23 +++++++++-------------- .copier-docker-config.yaml | 4 ++-- .docker/Dockerfile.base | 2 +- .docker/docker.common.env | 2 +- .envrc | 2 +- .tasks.toml | 2 +- CONTRIBUTING.md | 8 ++++---- Makefile | 4 ++-- README.md | 34 +++++++++++++++++----------------- book/en/_config.yml | 4 ++-- book/en/index.md | 32 ++++++++++++++++---------------- book/ko/_config.yml | 4 ++-- book/ko/index.md | 32 ++++++++++++++++---------------- pyproject.toml | 12 ++++++------ 14 files changed, 80 insertions(+), 85 deletions(-) diff --git a/.copier-config.yaml b/.copier-config.yaml index 6bca0cf..373adae 100644 --- a/.copier-config.yaml +++ b/.copier-config.yaml @@ -5,34 +5,29 @@ author: Young Joon Lee build_and_release: true code_template_answers_file: .copier-hyfi-config.yaml code_template_source: '' -codecov_graph_token: usYkLC6aBx +codecov_graph_token: FZ6rvEttdM copyright_year: 2024 documentaion_tool: jupyter-book -documentation_url: https://entelecheia.github.io/course-template-i18n +documentation_url: https://nlp4ss.entelecheia.ai email: entelecheia@hotmail.com favicon_path: https://assets.entelecheia.ai/favicon.png -friendly_name: Course Template Internationalization -github_repo_name: course-template-i18n +friendly_name: NLP for Social Science +github_repo_name: nlp4ss github_username: entelecheia google_analytics_id: G-BQJE5V9RK2 logo_path: '' main_branch: main open_link: true -package_name: coursetempi +package_name: nlp4ss package_scripts: -- coursetempi = 'coursetempi.__cli__:main' +- nlp4ss = 'nlp4ss.__cli__:main' poe_task_files: - .tasks.toml - .tasks-extra.toml -project_description: This project provides a comprehensive and flexible template for - creating and managing multilingual online courses. It leverages GitHub for version - control and Jupyter Book for interactive content delivery, enabling educators - to easily develop, maintain, and share their educational materials across different - languages and cultures. +project_description: NLP for Social Science (nlp4ss) is a comprehensive, multilingual course and toolkit designed to bridge the gap between natural language processing (NLP) and social science research. This project provides researchers, students, and practitioners with the knowledge and tools to apply cutting-edge NLP techniques to social science questions. It covers a wide range of topics, including text preprocessing, sentiment analysis, topic modeling, and machine learning applications in social contexts. With interactive Jupyter notebooks, hands-on examples, and real-world case studies, nlp4ss offers a practical approach to integrating computational methods into social science research. project_license: CC-BY-4.0 -project_name: course-template-i18n -project_short_description: Multilingual course creation template with interactive - documentation support for international audiences +project_name: nlp4ss +project_short_description: A course on applying natural language processing (NLP) techniques for social science research. upload_to_release: true upload_to_repository: true use_launch_buttons: true diff --git a/.copier-docker-config.yaml b/.copier-docker-config.yaml index 1afa464..b3d83c7 100644 --- a/.copier-docker-config.yaml +++ b/.copier-docker-config.yaml @@ -16,7 +16,7 @@ docker_container_username: dev docker_image_variant_name: base docker_image_version_variable_name: IMAGE_VERSION docker_name_prefix: COURSE_TEMP -docker_project_name: course-template-i18n +docker_project_name: nlp4ss docker_registry: ghcr.io docker_run_command: zsh docker_service_name: workspace @@ -25,7 +25,7 @@ docker_username: entelecheia email: entelecheia@hotmail.com enable_nvidia_gpu: true friendly_name: Course Template -github_repo_name: course-template-i18n +github_repo_name: nlp4ss github_username: entelecheia install_dotfiles: true jupyter_host_port: 19871 diff --git a/.docker/Dockerfile.base b/.docker/Dockerfile.base index 5a536df..b491f61 100644 --- a/.docker/Dockerfile.base +++ b/.docker/Dockerfile.base @@ -2,7 +2,7 @@ FROM ghcr.io/entelecheia/devcon:latest-cuda-12.1.0-ubuntu22.04 AS builder # Sets labels for the image -LABEL org.opencontainers.image.source="https://github.com/entelecheia/course-template-i18n" +LABEL org.opencontainers.image.source="https://github.com/entelecheia/nlp4ss" LABEL org.opencontainers.image.description="A template for a course" LABEL org.opencontainers.image.licenses="MIT" diff --git a/.docker/docker.common.env b/.docker/docker.common.env index 45f9b1c..56ec9b2 100644 --- a/.docker/docker.common.env +++ b/.docker/docker.common.env @@ -28,7 +28,7 @@ HOST_HF_HOME=${HOST_HF_HOME:-"$HOST_CACHE_DIR/huggingface"} # change the variables above to your need # ####################################################################################### # docker build: Configuration parameters for building the Docker image -DOCKER_PROJECT_NAME=${APP_NAME:-"course-template-i18n"} # The base name of the Docker image. +DOCKER_PROJECT_NAME=${APP_NAME:-"nlp4ss"} # The base name of the Docker image. DOCKER_PROJECT_ID=${DOCKER_PROJECT_ID:-"default"} # The project ID associated with the Docker image to support multiple projects DOCKER_USERNAME=${DOCKER_USERNAME:-"entelecheia"} # The username for Docker. IMAGE_VERSION=${IMAGE_VERSION:-"1.0.0"} # The version of the Docker image. If not set, "1.0.0" will be used. diff --git a/.envrc b/.envrc index c51e8fb..b8abd3a 100644 --- a/.envrc +++ b/.envrc @@ -1,6 +1,6 @@ #!/usr/bin/env bash export PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring" -export PROJECT_NAME="course-template-i18n" +export PROJECT_NAME="nlp4ss" PROJECT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" export PROJECT_ROOT VIRTUAL_ENV="${WORKON_HOME}/${PROJECT_NAME}" diff --git a/.tasks.toml b/.tasks.toml index 8b67c8a..91d4fc7 100644 --- a/.tasks.toml +++ b/.tasks.toml @@ -67,7 +67,7 @@ sequence = ["clean-cov", "clean-pycache", "clean-build", "clean-docs"] help = "remove build artifacts and coverage reports" [tool.poe.tasks.run] -cmd = "coursetempi" +cmd = "nlp4ss" help = "run the main program" [tool.poe.tasks.build] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2023449..0655179 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,8 +25,8 @@ and "help wanted" is open to whoever wants to implement it. ## Write Documentation -Course Template Internationalization could always use more documentation, whether as part of the -official Course Template Internationalization docs, in docstrings, or even on the web in blog posts, +NLP for Social Science could always use more documentation, whether as part of the +official NLP for Social Science docs, in docstrings, or even on the web in blog posts, articles, and such. ## Submit Feedback @@ -42,7 +42,7 @@ If you are proposing a feature: ## Get Started -Ready to contribute? Here's how to set up `Course Template Internationalization` for local development. +Ready to contribute? Here's how to set up `NLP for Social Science` for local development. 1. Fork the repo on GitHub. 2. Clone your fork locally. @@ -52,4 +52,4 @@ Ready to contribute? Here's how to set up `Course Template Internationalization` ## Code of Conduct -Please note that the Course Template Internationalization project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By contributing to this project you agree to abide by its terms. +Please note that the NLP for Social Science project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By contributing to this project you agree to abide by its terms. diff --git a/Makefile b/Makefile index 5c99366..4631a80 100644 --- a/Makefile +++ b/Makefile @@ -98,8 +98,8 @@ initialize: install-pipx ## initialize the project environment @pre-commit install remove-template: ## remove template-specific files - @rm -rf src/coursetempi - @rm -rf tests/coursetempi + @rm -rf src/nlp4ss + @rm -rf tests/nlp4ss @rm -rf CHANGELOG.md @echo "Template-specific files removed." diff --git a/README.md b/README.md index 9f84c39..d6fdbe0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Course Template Internationalization +# NLP for Social Science [![pypi-image]][pypi-url] [![version-image]][release-url] @@ -8,28 +8,28 @@ [![jupyter-book-image]][docs-url] -[codecov-image]: https://codecov.io/gh/entelecheia/course-template-i18n/branch/main/graph/badge.svg?token=usYkLC6aBx -[codecov-url]: https://codecov.io/gh/entelecheia/course-template-i18n -[pypi-image]: https://img.shields.io/pypi/v/course-template-i18n -[license-image]: https://img.shields.io/github/license/entelecheia/course-template-i18n -[license-url]: https://github.com/entelecheia/course-template-i18n/blob/main/LICENSE -[version-image]: https://img.shields.io/github/v/release/entelecheia/course-template-i18n?sort=semver -[release-date-image]: https://img.shields.io/github/release-date/entelecheia/course-template-i18n -[release-url]: https://github.com/entelecheia/course-template-i18n/releases +[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=usYkLC6aBx +[codecov-url]: https://codecov.io/gh/entelecheia/nlp4ss +[pypi-image]: https://img.shields.io/pypi/v/nlp4ss +[license-image]: https://img.shields.io/github/license/entelecheia/nlp4ss +[license-url]: https://github.com/entelecheia/nlp4ss/blob/main/LICENSE +[version-image]: https://img.shields.io/github/v/release/entelecheia/nlp4ss?sort=semver +[release-date-image]: https://img.shields.io/github/release-date/entelecheia/nlp4ss +[release-url]: https://github.com/entelecheia/nlp4ss/releases [jupyter-book-image]: https://jupyterbook.org/en/stable/_images/badge.svg -[repo-url]: https://github.com/entelecheia/course-template-i18n -[pypi-url]: https://pypi.org/project/course-template-i18n -[docs-url]: https://entelecheia.github.io/course-template-i18n -[changelog]: https://github.com/entelecheia/course-template-i18n/blob/main/CHANGELOG.md -[contributing guidelines]: https://github.com/entelecheia/course-template-i18n/blob/main/CONTRIBUTING.md +[repo-url]: https://github.com/entelecheia/nlp4ss +[pypi-url]: https://pypi.org/project/nlp4ss +[docs-url]: https://nlp4ss.entelecheia.ai +[changelog]: https://github.com/entelecheia/nlp4ss/blob/main/CHANGELOG.md +[contributing guidelines]: https://github.com/entelecheia/nlp4ss/blob/main/CONTRIBUTING.md Multilingual course creation template with interactive documentation support for international audiences -- Documentation: [https://entelecheia.github.io/course-template-i18n][docs-url] -- GitHub: [https://github.com/entelecheia/course-template-i18n][repo-url] -- PyPI: [https://pypi.org/project/course-template-i18n][pypi-url] +- Documentation: [https://nlp4ss.entelecheia.ai][docs-url] +- GitHub: [https://github.com/entelecheia/nlp4ss][repo-url] +- PyPI: [https://pypi.org/project/nlp4ss][pypi-url] This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures. diff --git a/book/en/_config.yml b/book/en/_config.yml index d436275..e744637 100644 --- a/book/en/_config.yml +++ b/book/en/_config.yml @@ -5,7 +5,7 @@ ####################################################################################### # Book settings -title: "Course Template Internationalization" # The title of the book. Will be placed in the left navbar. +title: "NLP for Social Science" # The title of the book. Will be placed in the left navbar. author: "Young Joon Lee" # The author of the book copyright: "2024" # Copyright year to be placed in the footer # logo: Path to the book logo @@ -29,7 +29,7 @@ bibtex_bibfiles: # Information about where the book exists on the web repository: - url: https://github.com/entelecheia/course-template-i18n # Online location of your book + url: https://github.com/entelecheia/nlp4ss # Online location of your book path_to_book: book # Optional path to your book, relative to the repository root branch: main # Which branch of the repository should be used when creating links (optional) diff --git a/book/en/index.md b/book/en/index.md index 9ddb985..839424b 100644 --- a/book/en/index.md +++ b/book/en/index.md @@ -10,28 +10,28 @@ [hyperfast python template]: https://github.com/entelecheia/hyperfast-python-template -[codecov-image]: https://codecov.io/gh/entelecheia/course-template-i18n/branch/main/graph/badge.svg?token=usYkLC6aBx -[codecov-url]: https://codecov.io/gh/entelecheia/course-template-i18n -[pypi-image]: https://img.shields.io/pypi/v/course-template-i18n -[license-image]: https://img.shields.io/github/license/entelecheia/course-template-i18n -[license-url]: https://github.com/entelecheia/course-template-i18n/blob/main/LICENSE -[version-image]: https://img.shields.io/github/v/release/entelecheia/course-template-i18n?sort=semver -[release-date-image]: https://img.shields.io/github/release-date/entelecheia/course-template-i18n -[release-url]: https://github.com/entelecheia/course-template-i18n/releases +[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=usYkLC6aBx +[codecov-url]: https://codecov.io/gh/entelecheia/nlp4ss +[pypi-image]: https://img.shields.io/pypi/v/nlp4ss +[license-image]: https://img.shields.io/github/license/entelecheia/nlp4ss +[license-url]: https://github.com/entelecheia/nlp4ss/blob/main/LICENSE +[version-image]: https://img.shields.io/github/v/release/entelecheia/nlp4ss?sort=semver +[release-date-image]: https://img.shields.io/github/release-date/entelecheia/nlp4ss +[release-url]: https://github.com/entelecheia/nlp4ss/releases [jupyter-book-image]: https://jupyterbook.org/en/stable/_images/badge.svg -[repo-url]: https://github.com/entelecheia/course-template-i18n -[pypi-url]: https://pypi.org/project/course-template-i18n -[docs-url]: https://entelecheia.github.io/course-template-i18n -[changelog]: https://github.com/entelecheia/course-template-i18n/blob/main/CHANGELOG.md -[contributing guidelines]: https://github.com/entelecheia/course-template-i18n/blob/main/CONTRIBUTING.md +[repo-url]: https://github.com/entelecheia/nlp4ss +[pypi-url]: https://pypi.org/project/nlp4ss +[docs-url]: https://nlp4ss.entelecheia.ai +[changelog]: https://github.com/entelecheia/nlp4ss/blob/main/CHANGELOG.md +[contributing guidelines]: https://github.com/entelecheia/nlp4ss/blob/main/CONTRIBUTING.md Multilingual course creation template with interactive documentation support for international audiences -- Documentation: [https://entelecheia.github.io/course-template-i18n][docs-url] -- GitHub: [https://github.com/entelecheia/course-template-i18n][repo-url] -- PyPI: [https://pypi.org/project/course-template-i18n][pypi-url] +- Documentation: [https://nlp4ss.entelecheia.ai][docs-url] +- GitHub: [https://github.com/entelecheia/nlp4ss][repo-url] +- PyPI: [https://pypi.org/project/nlp4ss][pypi-url] This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures. diff --git a/book/ko/_config.yml b/book/ko/_config.yml index d436275..e744637 100644 --- a/book/ko/_config.yml +++ b/book/ko/_config.yml @@ -5,7 +5,7 @@ ####################################################################################### # Book settings -title: "Course Template Internationalization" # The title of the book. Will be placed in the left navbar. +title: "NLP for Social Science" # The title of the book. Will be placed in the left navbar. author: "Young Joon Lee" # The author of the book copyright: "2024" # Copyright year to be placed in the footer # logo: Path to the book logo @@ -29,7 +29,7 @@ bibtex_bibfiles: # Information about where the book exists on the web repository: - url: https://github.com/entelecheia/course-template-i18n # Online location of your book + url: https://github.com/entelecheia/nlp4ss # Online location of your book path_to_book: book # Optional path to your book, relative to the repository root branch: main # Which branch of the repository should be used when creating links (optional) diff --git a/book/ko/index.md b/book/ko/index.md index 0f9b5c4..a0d5caf 100644 --- a/book/ko/index.md +++ b/book/ko/index.md @@ -10,28 +10,28 @@ [hyperfast python template]: https://github.com/entelecheia/hyperfast-python-template -[codecov-image]: https://codecov.io/gh/entelecheia/course-template-i18n/branch/main/graph/badge.svg?token=usYkLC6aBx -[codecov-url]: https://codecov.io/gh/entelecheia/course-template-i18n -[pypi-image]: https://img.shields.io/pypi/v/course-template-i18n -[license-image]: https://img.shields.io/github/license/entelecheia/course-template-i18n -[license-url]: https://github.com/entelecheia/course-template-i18n/blob/main/LICENSE -[version-image]: https://img.shields.io/github/v/release/entelecheia/course-template-i18n?sort=semver -[release-date-image]: https://img.shields.io/github/release-date/entelecheia/course-template-i18n -[release-url]: https://github.com/entelecheia/course-template-i18n/releases +[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=usYkLC6aBx +[codecov-url]: https://codecov.io/gh/entelecheia/nlp4ss +[pypi-image]: https://img.shields.io/pypi/v/nlp4ss +[license-image]: https://img.shields.io/github/license/entelecheia/nlp4ss +[license-url]: https://github.com/entelecheia/nlp4ss/blob/main/LICENSE +[version-image]: https://img.shields.io/github/v/release/entelecheia/nlp4ss?sort=semver +[release-date-image]: https://img.shields.io/github/release-date/entelecheia/nlp4ss +[release-url]: https://github.com/entelecheia/nlp4ss/releases [jupyter-book-image]: https://jupyterbook.org/en/stable/_images/badge.svg -[repo-url]: https://github.com/entelecheia/course-template-i18n -[pypi-url]: https://pypi.org/project/course-template-i18n -[docs-url]: https://entelecheia.github.io/course-template-i18n -[changelog]: https://github.com/entelecheia/course-template-i18n/blob/main/CHANGELOG.md -[contributing guidelines]: https://github.com/entelecheia/course-template-i18n/blob/main/CONTRIBUTING.md +[repo-url]: https://github.com/entelecheia/nlp4ss +[pypi-url]: https://pypi.org/project/nlp4ss +[docs-url]: https://nlp4ss.entelecheia.ai +[changelog]: https://github.com/entelecheia/nlp4ss/blob/main/CHANGELOG.md +[contributing guidelines]: https://github.com/entelecheia/nlp4ss/blob/main/CONTRIBUTING.md Multilingual course creation template with interactive documentation support for international audiences -- Documentation: [https://entelecheia.github.io/course-template-i18n][docs-url] -- GitHub: [https://github.com/entelecheia/course-template-i18n][repo-url] -- PyPI: [https://pypi.org/project/course-template-i18n][pypi-url] +- Documentation: [https://nlp4ss.entelecheia.ai][docs-url] +- GitHub: [https://github.com/entelecheia/nlp4ss][repo-url] +- PyPI: [https://pypi.org/project/nlp4ss][pypi-url] This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures. diff --git a/pyproject.toml b/pyproject.toml index 500910f..8f12b17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,16 +1,16 @@ [tool.poetry] -name = "course-template-i18n" +name = "nlp4ss" version = "0.2.0" description = "Multilingual course creation template with interactive documentation support for international audiences" authors = ["Young Joon Lee "] license = "CC-BY-4.0" -homepage = "https://entelecheia.github.io/course-template-i18n" -repository = "https://github.com/entelecheia/course-template-i18n" +homepage = "https://nlp4ss.entelecheia.ai" +repository = "https://github.com/entelecheia/nlp4ss" readme = "README.md" -packages = [{ include = "coursetempi", from = "src" }] +packages = [{ include = "nlp4ss", from = "src" }] [tool.poetry.scripts] -coursetempi = 'coursetempi.__cli__:main' +nlp4ss = 'nlp4ss.__cli__:main' [tool.poetry.dependencies] python = ">=3.9,<3.13" @@ -99,7 +99,7 @@ tag_format = "v$version" [tool.semantic_release] branch = "main" version_toml = "pyproject.toml:tool.poetry.version" -version_variable = "src/coursetempi/_version.py:__version__" +version_variable = "src/nlp4ss/_version.py:__version__" version_source = "tag" commit_version_number = true # required for version_source = "tag" commit_subject = "chore(release): :rocket: {version} [skip ci]" From 7396651e69a3983456337fe0bb366c4c30ab760c Mon Sep 17 00:00:00 2001 From: Young Joon Lee Date: Tue, 9 Jul 2024 08:45:35 +0900 Subject: [PATCH 3/5] refactor(docker-config): update naming from `course_temp` to `nlp4ss` for consistency --- .copier-docker-config.yaml | 4 ++-- .docker/Dockerfile.base | 2 +- .docker/docker.base.env | 12 ++++++------ .docker/docker.common.env | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.copier-docker-config.yaml b/.copier-docker-config.yaml index b3d83c7..c2403db 100644 --- a/.copier-docker-config.yaml +++ b/.copier-docker-config.yaml @@ -1,7 +1,7 @@ # Changes here will be overwritten by Copier; do NOT edit manually _commit: v0.31.0 _src_path: gh:entelecheia/hyperfast-docker-template -app_dirname: course_temp +app_dirname: nlp4ss app_install_root: /workspace author: Young Joon Lee build_images_from_dockerfile: true @@ -15,7 +15,7 @@ docker_container_uid: 9001 docker_container_username: dev docker_image_variant_name: base docker_image_version_variable_name: IMAGE_VERSION -docker_name_prefix: COURSE_TEMP +docker_name_prefix: NLP4SS docker_project_name: nlp4ss docker_registry: ghcr.io docker_run_command: zsh diff --git a/.docker/Dockerfile.base b/.docker/Dockerfile.base index b491f61..3568241 100644 --- a/.docker/Dockerfile.base +++ b/.docker/Dockerfile.base @@ -13,7 +13,7 @@ ENV PYTHONUNBUFFERED 1 # Setting ARGs and ENVs for the app ARG ARG_APP_INSTALL_ROOT="/workspace" -ARG ARG_APP_DIRNAME="course_temp" +ARG ARG_APP_DIRNAME="nlp4ss" ENV APP_INSTALL_ROOT $ARG_APP_INSTALL_ROOT ENV APP_DIRNAME $ARG_APP_DIRNAME ENV APP_SRC_DIR=${APP_INSTALL_ROOT}/${APP_DIRNAME} diff --git a/.docker/docker.base.env b/.docker/docker.base.env index d911300..1515443 100644 --- a/.docker/docker.base.env +++ b/.docker/docker.base.env @@ -18,12 +18,12 @@ BUILD_FROM="ghcr.io/entelecheia/devcon:latest-cuda-12.1.0-ubuntu22.04" # docker run: Configuration parameters for running the Docker container CONTAINER_LAUNCH_SCRIPT="${CONTAINER_WORKSPACE_ROOT}/scripts/launch.sh" # The name of the launch script -CONTAINER_CUDA_DEVICE_ID=${COURSE_TEMP_CUDA_DEVICE_ID:-"6"} # The ID of the CUDA device to use, e.g. all, 0, 1, 2, etc. +CONTAINER_CUDA_DEVICE_ID=${NLP4SS_CUDA_DEVICE_ID:-"6"} # The ID of the CUDA device to use, e.g. all, 0, 1, 2, etc. CONTAINER_SSH_PORT=${SSH_PORT:-"22"} # The SSH port in the Docker container -HOST_SSH_PORT=${COURSE_TEMP_HOST_SSH_PORT:-"2341"} # The SSH port on the host machine to be mapped to the container's SSH port +HOST_SSH_PORT=${NLP4SS_HOST_SSH_PORT:-"2341"} # The SSH port on the host machine to be mapped to the container's SSH port CONTAINER_JUPYTER_PORT=${JUPYTER_PORT:-"8585"} # The Jupyter port in the Docker container -HOST_JUPYTER_PORT=${COURSE_TEMP_HOST_JUPYTER_PORT:-"19871"} # The Jupyter port on the host machine to be mapped to the container's Jupyter port -CONTAINER_JUPYTER_TOKEN=${COURSE_TEMP_JUPYTER_TOKEN:-""} # The Jupyter token to use -CONTAINER_SERVICE_NAME=${COURSE_TEMP_SERVICE_NAME:-"app"} # The server name (optional, can be left empty) +HOST_JUPYTER_PORT=${NLP4SS_HOST_JUPYTER_PORT:-"19871"} # The Jupyter port on the host machine to be mapped to the container's Jupyter port +CONTAINER_JUPYTER_TOKEN=${NLP4SS_JUPYTER_TOKEN:-""} # The Jupyter token to use +CONTAINER_SERVICE_NAME=${NLP4SS_SERVICE_NAME:-"app"} # The server name (optional, can be left empty) CONTAINER_WEB_SVC_PORT=${WEB_SVC_PORT:-"8080"} # The Web service port in the Docker container -HOST_WEB_SVC_PORT=${COURSE_TEMP_HOST_WEB_SVC_PORT-"18761"} # The Web service port on the host machine to be mapped to the container's Web service port +HOST_WEB_SVC_PORT=${NLP4SS_HOST_WEB_SVC_PORT-"18761"} # The Web service port on the host machine to be mapped to the container's Web service port diff --git a/.docker/docker.common.env b/.docker/docker.common.env index 56ec9b2..1554069 100644 --- a/.docker/docker.common.env +++ b/.docker/docker.common.env @@ -2,8 +2,8 @@ # Configuration parameters for the docker project # # Change the variables below to your need: # ######################################################### -APP_INSTALL_ROOT=${COURSE_TEMP_INSTALL_ROOT:-"/workspace"} # The directory in the container where the project will be installed or cloned -APP_DIRNAME=${COURSE_TEMP_DIRNAME:-"course_temp"} # The directory name for the cloned project +APP_INSTALL_ROOT=${NLP4SS_INSTALL_ROOT:-"/workspace"} # The directory in the container where the project will be installed or cloned +APP_DIRNAME=${NLP4SS_DIRNAME:-"nlp4ss"} # The directory name for the cloned project APP_SRC_DIR=${APP_INSTALL_ROOT}/${APP_DIRNAME} APP_VIRTUAL_ENV=${APP_INSTALL_ROOT}/.venvs/${APP_DIRNAME} APP_WORKSPACE_ROOT=${APP_INSTALL_ROOT}/workspace From ba252181adecfc6c2de67ea0025a5eaae8e633df Mon Sep 17 00:00:00 2001 From: Young Joon Lee Date: Tue, 9 Jul 2024 09:13:23 +0900 Subject: [PATCH 4/5] feat(cli): add command line interface for nlp4ss --- src/nlp4ss/__cli__.py | 69 +++++++++++++++++++++++++++++++ src/nlp4ss/__init__.py | 13 ++++++ src/nlp4ss/_version.py | 1 + src/nlp4ss/conf/about/nlp4ss.yaml | 6 +++ src/nlp4ss/py.typed | 0 tests/nlp4ss/test_cli.py | 22 ++++++++++ tests/nlp4ss/test_init.py | 12 ++++++ 7 files changed, 123 insertions(+) create mode 100644 src/nlp4ss/__cli__.py create mode 100644 src/nlp4ss/__init__.py create mode 100644 src/nlp4ss/_version.py create mode 100644 src/nlp4ss/conf/about/nlp4ss.yaml create mode 100644 src/nlp4ss/py.typed create mode 100644 tests/nlp4ss/test_cli.py create mode 100644 tests/nlp4ss/test_init.py diff --git a/src/nlp4ss/__cli__.py b/src/nlp4ss/__cli__.py new file mode 100644 index 0000000..b62c0ac --- /dev/null +++ b/src/nlp4ss/__cli__.py @@ -0,0 +1,69 @@ +"""Command line interface for nlp4ss""" + +# Importing the libraries +import os +import subprocess +import webbrowser + +import click +import yaml + +from nlp4ss._version import __version__ + +__package_path__ = os.path.abspath(os.path.dirname(__file__)) +__package_name__ = os.path.basename(__package_path__) + + +def load_about() -> dict: + """ + Load the about.yml file. + """ + + about_path = os.path.join(__package_path__, f"conf/about/{__package_name__}.yaml") + if not os.path.isfile(about_path): + click.echo(f"The `{about_path}` was not found.") + raise click.Abort() + with open(about_path, "r", encoding="utf-8") as f: + return yaml.load(f, Loader=yaml.Loader) + + +__about__ = load_about() + + +@click.command() +@click.version_option(__version__) +@click.option("--build", "-b", is_flag=True, help="Build the book") +def main(build: bool = False) -> None: + """ + This is the cli function of the package. + It opens the book in the browser or builds the book. + """ + if build: + click.echo("Building the book...") + build_book() + else: + open_book() + + +def open_book() -> None: + """ + Open the book in the browser. + """ + click.echo("Opening the book...") + webbrowser.open_new_tab(__about__["homepage"]) + + +def build_book() -> None: + """ + Build the book. + """ + book_path = os.path.join(__package_path__, "book") + if not os.path.isdir(book_path): + click.echo("The book directory was not found.") + return + subprocess.run(["jupyter-book", "build", book_path], check=True) + + +# main function for the main module +if __name__ == "__main__": + main() diff --git a/src/nlp4ss/__init__.py b/src/nlp4ss/__init__.py new file mode 100644 index 0000000..27d5e3b --- /dev/null +++ b/src/nlp4ss/__init__.py @@ -0,0 +1,13 @@ +from nlp4ss._version import __version__ + + +def get_version() -> str: + """ + Get the version of the package. This is the cli function of the package. + If you want to check the version of the package you can use this function. + + + Returns: + The version of the package as a string e.g. "0.1.0" + """ + return __version__ diff --git a/src/nlp4ss/_version.py b/src/nlp4ss/_version.py new file mode 100644 index 0000000..6c8e6b9 --- /dev/null +++ b/src/nlp4ss/_version.py @@ -0,0 +1 @@ +__version__ = "0.0.0" diff --git a/src/nlp4ss/conf/about/nlp4ss.yaml b/src/nlp4ss/conf/about/nlp4ss.yaml new file mode 100644 index 0000000..f6e408d --- /dev/null +++ b/src/nlp4ss/conf/about/nlp4ss.yaml @@ -0,0 +1,6 @@ +_open_link_: True +name: "NLP for Social Science" +authors: "Young Joon Lee " +description: "A course on applying natural language processing (NLP) techniques for social science research." +homepage: "https://nlp4ss.entelecheia.ai" +license: "CC-BY-4.0" diff --git a/src/nlp4ss/py.typed b/src/nlp4ss/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/tests/nlp4ss/test_cli.py b/tests/nlp4ss/test_cli.py new file mode 100644 index 0000000..24d9be2 --- /dev/null +++ b/tests/nlp4ss/test_cli.py @@ -0,0 +1,22 @@ +""" +test cli module +""" +import subprocess +from typing import List, Tuple + + +def capture(command: List[str]) -> Tuple[bytes, bytes, int]: + proc = subprocess.Popen( + command, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + out, err = proc.communicate() + return out, err, proc.returncode + + +def test_cli() -> None: + """Test cli module""" + command = ["nlp4ss"] + out, err, exitcode = capture(command) + assert exitcode == 0 diff --git a/tests/nlp4ss/test_init.py b/tests/nlp4ss/test_init.py new file mode 100644 index 0000000..ec5cf8a --- /dev/null +++ b/tests/nlp4ss/test_init.py @@ -0,0 +1,12 @@ +from nlp4ss import get_version + + +def test_get_version() -> None: + """ + Test the get_version function. + + version format: major.minor.patch[.devN+g] + """ + version = get_version() + # check version format + assert version.count(".") in range(2, 5) From db633836af58d372b4233444f6e735bdb2ab48dc Mon Sep 17 00:00:00 2001 From: Young Joon Lee Date: Tue, 9 Jul 2024 09:15:51 +0900 Subject: [PATCH 5/5] refactor(readme): update project description and badge token --- .copier-config.yaml | 13 +++- .readthedocs.yaml | 25 +++++++ CHANGELOG.md | 1 + README.md | 6 +- book/_config.yml | 103 ++++++++++++++++++++++++++ book/assets/assets/extra/.gitkeep | 0 book/assets/extra/.gitkeep | 0 book/en/index.md | 6 +- book/ko/index.md | 6 +- poetry.lock | 115 +++++++++++++++++++++++++++++- pyproject.toml | 6 +- 11 files changed, 266 insertions(+), 15 deletions(-) create mode 100644 .readthedocs.yaml create mode 100644 CHANGELOG.md create mode 100644 book/_config.yml create mode 100644 book/assets/assets/extra/.gitkeep create mode 100644 book/assets/extra/.gitkeep diff --git a/.copier-config.yaml b/.copier-config.yaml index 373adae..ed34a8a 100644 --- a/.copier-config.yaml +++ b/.copier-config.yaml @@ -24,10 +24,19 @@ package_scripts: poe_task_files: - .tasks.toml - .tasks-extra.toml -project_description: NLP for Social Science (nlp4ss) is a comprehensive, multilingual course and toolkit designed to bridge the gap between natural language processing (NLP) and social science research. This project provides researchers, students, and practitioners with the knowledge and tools to apply cutting-edge NLP techniques to social science questions. It covers a wide range of topics, including text preprocessing, sentiment analysis, topic modeling, and machine learning applications in social contexts. With interactive Jupyter notebooks, hands-on examples, and real-world case studies, nlp4ss offers a practical approach to integrating computational methods into social science research. +project_description: NLP for Social Science (nlp4ss) is a comprehensive, multilingual + course and toolkit designed to bridge the gap between natural language processing + (NLP) and social science research. This project provides researchers, students, + and practitioners with the knowledge and tools to apply cutting-edge NLP techniques + to social science questions. It covers a wide range of topics, including text + preprocessing, sentiment analysis, topic modeling, and machine learning applications + in social contexts. With interactive Jupyter notebooks, hands-on examples, and + real-world case studies, nlp4ss offers a practical approach to integrating computational + methods into social science research. project_license: CC-BY-4.0 project_name: nlp4ss -project_short_description: A course on applying natural language processing (NLP) techniques for social science research. +project_short_description: A course on applying natural language processing (NLP) + techniques for social science research. upload_to_release: true upload_to_repository: true use_launch_buttons: true diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..90920e7 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,25 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.10" + jobs: + pre_build: + # Generate on-the-fly Sphinx configuration from Jupyter Book's _config.yml + - "jupyter-book config sphinx book/" + +formats: + - pdf + - epub + +# Optionally declare the Python requirements required to build your docs +python: + install: + - requirements: book/requirements.txt diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..61f3ce4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ + diff --git a/README.md b/README.md index d6fdbe0..8aa4702 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![jupyter-book-image]][docs-url] -[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=usYkLC6aBx +[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=FZ6rvEttdM [codecov-url]: https://codecov.io/gh/entelecheia/nlp4ss [pypi-image]: https://img.shields.io/pypi/v/nlp4ss [license-image]: https://img.shields.io/github/license/entelecheia/nlp4ss @@ -25,13 +25,13 @@ [contributing guidelines]: https://github.com/entelecheia/nlp4ss/blob/main/CONTRIBUTING.md -Multilingual course creation template with interactive documentation support for international audiences +A course on applying natural language processing (NLP) techniques for social science research. - Documentation: [https://nlp4ss.entelecheia.ai][docs-url] - GitHub: [https://github.com/entelecheia/nlp4ss][repo-url] - PyPI: [https://pypi.org/project/nlp4ss][pypi-url] -This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures. +NLP for Social Science (nlp4ss) is a comprehensive, multilingual course and toolkit designed to bridge the gap between natural language processing (NLP) and social science research. This project provides researchers, students, and practitioners with the knowledge and tools to apply cutting-edge NLP techniques to social science questions. It covers a wide range of topics, including text preprocessing, sentiment analysis, topic modeling, and machine learning applications in social contexts. With interactive Jupyter notebooks, hands-on examples, and real-world case studies, nlp4ss offers a practical approach to integrating computational methods into social science research. ## Changelog diff --git a/book/_config.yml b/book/_config.yml new file mode 100644 index 0000000..e744637 --- /dev/null +++ b/book/_config.yml @@ -0,0 +1,103 @@ +####################################################################################### +# A default configuration that will be loaded for all jupyter books +# See the documentation for help and more options: +# https://jupyterbook.org/customize/config.html + +####################################################################################### +# Book settings +title: "NLP for Social Science" # The title of the book. Will be placed in the left navbar. +author: "Young Joon Lee" # The author of the book +copyright: "2024" # Copyright year to be placed in the footer +# logo: Path to the book logo + +# Force re-execution of notebooks on each build. +# See https://jupyterbook.org/content/execute.html +execute: + execute_notebooks: cache + exclude_patterns: + - "*.ipynb" + allow_errors: true + +# Define the name of the latex output file for PDF builds +latex: + latex_documents: + targetname: book.tex + +# Add a bibtex file so that we can create citations +bibtex_bibfiles: + - references.bib + +# Information about where the book exists on the web +repository: + url: https://github.com/entelecheia/nlp4ss # Online location of your book + path_to_book: book # Optional path to your book, relative to the repository root + branch: main # Which branch of the repository should be used when creating links (optional) + +# Add GitHub buttons to your book +# See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository +html: + use_issues_button: true + use_repository_button: true + use_edit_page_button: true + favicon: https://assets.entelecheia.ai/favicon.png # favicon: Path to the favicon image + google_analytics_id: G-BQJE5V9RK2 # google_analytics_id: Google Analytics ID + +sphinx: + config: + html_extra_path: ["assets"] + bibtex_reference_style: author_year + mathjax_path: https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js + intersphinx_mapping: + ebp: + - "https://executablebooks.org/en/latest/" + - null + myst-parser: + - "https://myst-parser.readthedocs.io/en/latest/" + - null + myst-nb: + - "https://myst-nb.readthedocs.io/en/latest/" + - null + sphinx: + - "https://www.sphinx-doc.org/en/master" + - null + nbformat: + - "https://nbformat.readthedocs.io/en/latest" + - null + sd: + - "https://sphinx-design.readthedocs.io/en/latest" + - null + sphinxproof: + - "https://sphinx-proof.readthedocs.io/en/latest/" + - null + hoverxref_intersphinx: + - "sphinxproof" + mathjax3_config: + tex: + macros: + "N": "\\mathbb{N}" + "floor": ["\\lfloor#1\\rfloor", 1] + "bmat": ["\\left[\\begin{array}"] + "emat": ["\\end{array}\\right]"] + add_module_names: false + autosummary_generate: true + + extra_extensions: + - sphinx.ext.intersphinx + - sphinx.ext.autodoc + - sphinx.ext.autosummary + - sphinx.ext.napoleon + - sphinx.ext.viewcode + - sphinx_inline_tabs + - sphinx_proof + - sphinx_examples + - hoverxref.extension + - sphinxcontrib.youtube + - sphinxcontrib.video + - sphinxcontrib.mermaid + - sphinx_thebe + - sphinx_carousel.carousel + - sphinxcontrib.lastupdate + +launch_buttons: + colab_url: "https://colab.research.google.com" + thebe: true diff --git a/book/assets/assets/extra/.gitkeep b/book/assets/assets/extra/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/book/assets/extra/.gitkeep b/book/assets/extra/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/book/en/index.md b/book/en/index.md index 839424b..bfb5c48 100644 --- a/book/en/index.md +++ b/book/en/index.md @@ -10,7 +10,7 @@ [hyperfast python template]: https://github.com/entelecheia/hyperfast-python-template -[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=usYkLC6aBx +[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=FZ6rvEttdM [codecov-url]: https://codecov.io/gh/entelecheia/nlp4ss [pypi-image]: https://img.shields.io/pypi/v/nlp4ss [license-image]: https://img.shields.io/github/license/entelecheia/nlp4ss @@ -27,13 +27,13 @@ [contributing guidelines]: https://github.com/entelecheia/nlp4ss/blob/main/CONTRIBUTING.md -Multilingual course creation template with interactive documentation support for international audiences +A course on applying natural language processing (NLP) techniques for social science research. - Documentation: [https://nlp4ss.entelecheia.ai][docs-url] - GitHub: [https://github.com/entelecheia/nlp4ss][repo-url] - PyPI: [https://pypi.org/project/nlp4ss][pypi-url] -This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures. +NLP for Social Science (nlp4ss) is a comprehensive, multilingual course and toolkit designed to bridge the gap between natural language processing (NLP) and social science research. This project provides researchers, students, and practitioners with the knowledge and tools to apply cutting-edge NLP techniques to social science questions. It covers a wide range of topics, including text preprocessing, sentiment analysis, topic modeling, and machine learning applications in social contexts. With interactive Jupyter notebooks, hands-on examples, and real-world case studies, nlp4ss offers a practical approach to integrating computational methods into social science research. ## Changelog diff --git a/book/ko/index.md b/book/ko/index.md index a0d5caf..aad02ef 100644 --- a/book/ko/index.md +++ b/book/ko/index.md @@ -10,7 +10,7 @@ [hyperfast python template]: https://github.com/entelecheia/hyperfast-python-template -[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=usYkLC6aBx +[codecov-image]: https://codecov.io/gh/entelecheia/nlp4ss/branch/main/graph/badge.svg?token=FZ6rvEttdM [codecov-url]: https://codecov.io/gh/entelecheia/nlp4ss [pypi-image]: https://img.shields.io/pypi/v/nlp4ss [license-image]: https://img.shields.io/github/license/entelecheia/nlp4ss @@ -27,13 +27,13 @@ [contributing guidelines]: https://github.com/entelecheia/nlp4ss/blob/main/CONTRIBUTING.md -Multilingual course creation template with interactive documentation support for international audiences +A course on applying natural language processing (NLP) techniques for social science research. - Documentation: [https://nlp4ss.entelecheia.ai][docs-url] - GitHub: [https://github.com/entelecheia/nlp4ss][repo-url] - PyPI: [https://pypi.org/project/nlp4ss][pypi-url] -This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures. +NLP for Social Science (nlp4ss) is a comprehensive, multilingual course and toolkit designed to bridge the gap between natural language processing (NLP) and social science research. This project provides researchers, students, and practitioners with the knowledge and tools to apply cutting-edge NLP techniques to social science questions. It covers a wide range of topics, including text preprocessing, sentiment analysis, topic modeling, and machine learning applications in social contexts. With interactive Jupyter notebooks, hands-on examples, and real-world case studies, nlp4ss offers a practical approach to integrating computational methods into social science research. ## Changelog diff --git a/poetry.lock b/poetry.lock index 779d1ad..79eb461 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "backports-tarfile" version = "1.2.0" description = "Backport of CPython tarfile module" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -19,6 +20,7 @@ testing = ["jaraco.test", "pytest (!=8.0.*)", "pytest (>=6,!=8.1.*)", "pytest-ch name = "black" version = "24.4.2" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -65,6 +67,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -76,6 +79,7 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -140,6 +144,7 @@ pycparser = "*" name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -239,6 +244,7 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -253,6 +259,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-log" version = "0.4.0" description = "Logging integration for Click" +category = "dev" optional = false python-versions = "*" files = [ @@ -267,6 +274,7 @@ click = "*" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -278,6 +286,7 @@ files = [ name = "coverage" version = "7.5.4" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -345,6 +354,7 @@ toml = ["tomli"] name = "cryptography" version = "42.0.8" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -399,6 +409,7 @@ test-randomorder = ["pytest-randomly"] name = "docutils" version = "0.21.2" description = "Docutils -- Python Documentation Utilities" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -410,6 +421,7 @@ files = [ name = "dotty-dict" version = "1.3.1" description = "Dictionary wrapper for quick access to deeply nested keys." +category = "dev" optional = false python-versions = ">=3.5,<4.0" files = [ @@ -421,6 +433,7 @@ files = [ name = "exceptiongroup" version = "1.2.1" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -435,6 +448,7 @@ test = ["pytest (>=6)"] name = "flake8" version = "6.1.0" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -451,6 +465,7 @@ pyflakes = ">=3.1.0,<3.2.0" name = "flake8-pyproject" version = "1.2.3" description = "Flake8 plug-in loading the configuration from pyproject.toml" +category = "dev" optional = false python-versions = ">= 3.6" files = [ @@ -468,6 +483,7 @@ dev = ["pyTest", "pyTest-cov"] name = "gitdb" version = "4.0.11" description = "Git Object Database" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -482,6 +498,7 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.43" description = "GitPython is a Python library used to interact with Git repositories" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -500,6 +517,7 @@ test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", name = "idna" version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -511,6 +529,7 @@ files = [ name = "importlib-metadata" version = "8.0.0" description = "Read metadata from Python packages" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -530,6 +549,7 @@ test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "p name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -541,6 +561,7 @@ files = [ name = "invoke" version = "2.2.0" description = "Pythonic task execution" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -552,6 +573,7 @@ files = [ name = "isort" version = "5.13.2" description = "A Python utility / library to sort Python imports." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -566,6 +588,7 @@ colors = ["colorama (>=0.4.6)"] name = "jaraco-classes" version = "3.4.0" description = "Utility functions for Python class constructs" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -584,6 +607,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-ena name = "jaraco-context" version = "5.3.0" description = "Useful decorators and context managers" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -602,6 +626,7 @@ testing = ["portend", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytes name = "jaraco-functools" version = "4.0.1" description = "Functools like those found in stdlib" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -620,6 +645,7 @@ testing = ["jaraco.classes", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest name = "jeepney" version = "0.8.0" description = "Low-level, pure Python DBus protocol wrapper." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -635,6 +661,7 @@ trio = ["async_generator", "trio"] name = "keyring" version = "25.2.1" description = "Store and access your passwords safely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -660,6 +687,7 @@ testing = ["pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "py name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -671,6 +699,7 @@ files = [ name = "more-itertools" version = "10.3.0" description = "More routines for operating on iterables, beyond itertools" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -682,6 +711,7 @@ files = [ name = "mypy" version = "1.10.1" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -729,6 +759,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -740,6 +771,7 @@ files = [ name = "nh3" version = "0.2.17" description = "Python bindings to the ammonia HTML sanitization library." +category = "dev" optional = false python-versions = "*" files = [ @@ -765,6 +797,7 @@ files = [ name = "packaging" version = "24.1" description = "Core utilities for Python packages" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -776,6 +809,7 @@ files = [ name = "pathspec" version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -787,6 +821,7 @@ files = [ name = "pkginfo" version = "1.11.1" description = "Query metadata from sdists / bdists / installed packages." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -801,6 +836,7 @@ testing = ["pytest", "pytest-cov", "wheel"] name = "platformdirs" version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -817,6 +853,7 @@ type = ["mypy (>=1.8)"] name = "pluggy" version = "1.5.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -832,6 +869,7 @@ testing = ["pytest", "pytest-benchmark"] name = "pycodestyle" version = "2.11.1" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -843,6 +881,7 @@ files = [ name = "pycparser" version = "2.22" description = "C parser in Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -854,6 +893,7 @@ files = [ name = "pyflakes" version = "3.1.0" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -865,6 +905,7 @@ files = [ name = "pygments" version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -879,6 +920,7 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pytest" version = "7.4.4" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -901,6 +943,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -919,6 +962,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "python-gitlab" version = "3.15.0" description = "Interact with GitLab API" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -938,6 +982,7 @@ yaml = ["PyYaml (>=5.2)"] name = "python-semantic-release" version = "7.34.6" description = "Automatic Semantic Versioning for Python projects" +category = "dev" optional = false python-versions = "*" files = [ @@ -969,6 +1014,7 @@ test = ["coverage (>=5,<6)", "mock (==1.3.0)", "pytest (>=7,<8)", "pytest-mock ( name = "pywin32-ctypes" version = "0.2.2" description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -976,10 +1022,61 @@ files = [ {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, ] +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + [[package]] name = "readme-renderer" version = "43.0" description = "readme_renderer is a library for rendering readme descriptions for Warehouse" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -999,6 +1096,7 @@ md = ["cmarkgfm (>=0.8.0)"] name = "requests" version = "2.32.3" description = "Python HTTP for Humans." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1020,6 +1118,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-toolbelt" version = "1.0.0" description = "A utility belt for advanced users of python-requests" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1034,6 +1133,7 @@ requests = ">=2.0.1,<3.0.0" name = "rfc3986" version = "2.0.0" description = "Validating URI References per RFC 3986" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1048,6 +1148,7 @@ idna2008 = ["idna"] name = "secretstorage" version = "3.3.3" description = "Python bindings to FreeDesktop.org Secret Service API" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1063,6 +1164,7 @@ jeepney = ">=0.6" name = "semver" version = "2.13.0" description = "Python helper for Semantic Versioning (http://semver.org/)" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1074,6 +1176,7 @@ files = [ name = "smmap" version = "5.0.1" description = "A pure Python implementation of a sliding window memory map manager" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1085,6 +1188,7 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1096,6 +1200,7 @@ files = [ name = "tomlkit" version = "0.12.5" description = "Style preserving TOML library" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1107,6 +1212,7 @@ files = [ name = "tqdm" version = "4.66.4" description = "Fast, Extensible Progress Meter" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1127,6 +1233,7 @@ telegram = ["requests"] name = "twine" version = "3.8.0" description = "Collection of utilities for publishing packages on PyPI" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1150,6 +1257,7 @@ urllib3 = ">=1.26.0" name = "typing-extensions" version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1161,6 +1269,7 @@ files = [ name = "urllib3" version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1178,6 +1287,7 @@ zstd = ["zstandard (>=0.18.0)"] name = "wheel" version = "0.43.0" description = "A built-package format for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1192,6 +1302,7 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] name = "zipp" version = "3.19.2" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1206,4 +1317,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "0bd926a854d9c6d79f6722a61aa4313fadb188e0cd9f0b5f20f5c2265ad37cea" +content-hash = "2fbd890ef1b97b1520da6a2c2dcf06eb7103e9c33a24424dc49683c983f3e1e9" diff --git a/pyproject.toml b/pyproject.toml index 8f12b17..0350bbc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "nlp4ss" -version = "0.2.0" -description = "Multilingual course creation template with interactive documentation support for international audiences" +version = "0.0.0" +description = "A course on applying natural language processing (NLP) techniques for social science research." authors = ["Young Joon Lee "] license = "CC-BY-4.0" homepage = "https://nlp4ss.entelecheia.ai" @@ -15,6 +15,7 @@ nlp4ss = 'nlp4ss.__cli__:main' [tool.poetry.dependencies] python = ">=3.9,<3.13" click = "^8.1.3" +pyyaml = "^6.0.1" [tool.poetry.group.dev] optional = true @@ -99,6 +100,7 @@ tag_format = "v$version" [tool.semantic_release] branch = "main" version_toml = "pyproject.toml:tool.poetry.version" +version_pattern = '.docker/docker.version:IMAGE_VERSION="{version}"' version_variable = "src/nlp4ss/_version.py:__version__" version_source = "tag" commit_version_number = true # required for version_source = "tag"