-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Question] A question about introducing black for code format #46
Comments
@ChenZiHong-Gavin 你好! 我是Dosu,一个可以帮助你解决错误、回答问题并成为贡献者的机器人。我将在等待人类维护者的过程中协助你。 You should modify Here is an example of how you might modify name: "Lint and Format"
on:
push:
branches:
- 'release-*'
pull_request:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black pylint pytest
pip install -r ./hugegraph-llm/requirements.txt
pip install -r ./hugegraph-llm/llm_api/requirements.txt
pip install -r ./hugegraph-python-client/requirements.txt
- name: Run code format and analysis
run: |
chmod +x style/code_format_and_analysis.sh
./style/code_format_and_analysis.sh -b -p This workflow will run both BLACK and PYLINT as specified in the
|
it makes sense |
Great! It sounds like you're on the right track. If you need any further assistance or have more questions, feel free to ask. Happy coding!
|
Also, BLACK provides GitHub Actions integration(https://black.readthedocs.io/en/stable/integrations/github_actions.html), and i believe it's better because its flexibility |
@dosu we used the action(black CI) but it was banned by Apache's action rules, can you find examples of other Apache projects(in GitHub) using black as a code CI check or how to correctly reference black? |
@ChenZiHong-Gavin, integrating BLACK into your CI workflow while adhering to Apache's action rules can be challenging. Here is an example of how BLACK is integrated within the constraints of Apache's action rules: name: "Black Code Formatter"
on:
push:
branches:
- 'release-*'
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: psf/black@3702ba224ecffbcec30af640c149f231d90aebdb
with:
options: "--check --diff --line-length 100"
src: "hugegraph-llm/src hugegraph-python-client/src" Additionally, the #! /bin/bash
BLACK=false
PYLINT=false
ROOT_DIR=$(pwd)
echo ${ROOT_DIR}
# Parse command line arguments
while getopts ":bp" opt; do
case ${opt} in
b )
BLACK=true
;;
p )
PYLINT=true
;;
\? )
echo "Usage: cmd [-b] [-p]"
;;
esac
done
# If no arguments were provided, run both BLACK and PYLINT
if [ "$BLACK" = false ] && [ "$PYLINT" = false ]; then
BLACK=true
PYLINT=true
fi
# Run BLACK if -b is specified
if [ "$BLACK" = true ] ; then
echo "[black] Start to check code style and auto format"
black --line-length=100 ${ROOT_DIR}
fi
# Run PYLINT if -p is specified
if [ "$PYLINT" = true ] ; then
echo "[pylint] Start code analysis and check,
we need to manually fix all the warnings mentioned below before commit! "
export PYTHONPATH=${ROOT_DIR}/hugegraph-llm/src:${ROOT_DIR}/hugegraph-python-client/src
pylint --rcfile=${ROOT_DIR}/style/pylint.conf ${ROOT_DIR}/hugegraph-llm
pylint --rcfile=${ROOT_DIR}/style/pylint.conf --disable C0103 ${ROOT_DIR}/hugegraph-python-client
fi This script allows for flexible integration of BLACK and PYLINT checks, either individually or together, based on command-line arguments [1][2]. If you need further assistance or have more questions, feel free to ask. Happy coding! |
Problem Type (问题类型)
configs (配置项 / 文档相关)
Before submit
Environment (环境信息)
Your Question (问题描述)
I am thinking about introducing BLACK for code check but still confused about the process.
I also noticed that there's a style script already using BLACK, refer: https://github.com/apache/incubator-hugegraph-ai/blob/main/style/code_format_and_analysis.sh
This script is used in the pylint.yml workflow, but only the pylint functionality is enabled. Should I create a new workflow for using BLACK, following the structure of pylint.yml, or should I modify pylint.yml to make it capable of performing code formatting tasks as well?
Vertex/Edge example (问题点 / 边数据举例)
No response
Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)
No response
The text was updated successfully, but these errors were encountered: