diff --git a/.github/check_run_scripts.sh b/.github/check_run_scripts.sh new file mode 100644 index 0000000..8288613 --- /dev/null +++ b/.github/check_run_scripts.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +rm filechk_results.txt + +declare -a FilesArray=("requirements.txt" "run_experiment.sh") + +for val in ${FilesArray[@]}; +do + echo "Checking presence of $val" + if test -f "$val"; + then + echo "$val exists" >> filechk_results.txt + else + echo "$val does not exist" >> filechk_results.txt + fi +done diff --git a/.github/workflows/cloc.yml b/.github/workflows/cloc.yml new file mode 100644 index 0000000..a1f551d --- /dev/null +++ b/.github/workflows/cloc.yml @@ -0,0 +1,52 @@ +name: Count Lines of Code + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the main branch +on: [pull_request] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + + # This workflow contains a single job called "build" + cloc: + + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout repo + uses: actions/checkout@v3 + + # Runs djdefi/cloc-action + - name: Install and run cloc + run: | + sudo apt-get install cloc + cloc src --csv --quiet --report-file=cloc_report.csv + + - name: Read CSV + id: csv + uses: juliangruber/read-file-action@v1 + with: + path: ./cloc_report.csv + + - name: Create MD + uses: petems/csv-to-md-table-action@master + id: csv-table-output + with: + csvinput: ${{ steps.csv.outputs.content }} + + - name: Write file + uses: "DamianReeves/write-file-action@master" + with: + path: ./cloc_report.md + write-mode: overwrite + contents: | + ${{steps.csv-table-output.outputs.markdown-table}} + + - name: PR comment with file + uses: thollander/actions-comment-pull-request@v2 + with: + filePath: ./cloc_report.md diff --git a/.github/workflows/filechk.yml b/.github/workflows/filechk.yml new file mode 100644 index 0000000..0c4d9f0 --- /dev/null +++ b/.github/workflows/filechk.yml @@ -0,0 +1,24 @@ +name: Checks if files are present + +on: [pull_request] + +jobs: + + # This workflow contains a single job called "test" + check_files: + + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Check files script + run: | + chmod +x ./.github/check_run_scripts.sh + ./.github/check_run_scripts.sh + + - name: PR comment with file + uses: thollander/actions-comment-pull-request@v2 + with: + filePath: ./filechk_results.txt diff --git a/.github/workflows/pylinter.yml b/.github/workflows/pylinter.yml new file mode 100644 index 0000000..cf7aa8c --- /dev/null +++ b/.github/workflows/pylinter.yml @@ -0,0 +1,25 @@ +name: Checks python code for linting + +on: [pull_request] + +jobs: + + # This workflow contains a single job called "test" + check_pylint: + + runs-on: ubuntu-latest + + steps: + # - name: Checkout repo + # uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Python Linter + uses: sunnysid3up/python-linter@master + with: + source: "src" + mypy-options: "--ignore-missing-imports --show-error-codes" + #pylint-options: "--rcfile=setup.cfg" + isort-options: "-w 100" + django: true + #- name: GitHub Action for pylint + # uses: marian-code/python-lint-annotate@v3 diff --git a/requirements.txt b/requirements.txt index ddf89f8..1fdb503 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ scikit_learn==1.0.1 scipy==1.12.0 statsmodels==0.13.2 torch==2.0.0 -tqdm==4.66.2 +tqdm==4.66.2 \ No newline at end of file diff --git a/run_experiment.sh b/run_experiment.sh new file mode 100755 index 0000000..51be4e6 --- /dev/null +++ b/run_experiment.sh @@ -0,0 +1 @@ +python -m experiments.particle_exp \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..ec1ebae --- /dev/null +++ b/setup.py @@ -0,0 +1,6 @@ +from setuptools import find_packages, setup + +setup( + name='CopulaCPTS', + packages=find_packages(), +) \ No newline at end of file diff --git a/covid_exp.py b/src/experiments/covid_exp.py similarity index 97% rename from covid_exp.py rename to src/experiments/covid_exp.py index eb9b745..1140192 100644 --- a/covid_exp.py +++ b/src/experiments/covid_exp.py @@ -4,7 +4,7 @@ import torch from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt -from models import rnn, lstm, bjrnn, cfrnn, copulaCPTS, dplstm, vanila_copula +from src.models import rnn, lstm, bjrnn, cfrnn, copulaCPTS, dplstm, vanila_copula class COVIDDataset(torch.utils.data.Dataset): def __init__(self, X, Y, sequence_lengths): diff --git a/drone_exp.py b/src/experiments/drone_exp.py similarity index 98% rename from drone_exp.py rename to src/experiments/drone_exp.py index 074b3fe..8714f07 100644 --- a/drone_exp.py +++ b/src/experiments/drone_exp.py @@ -4,7 +4,7 @@ import pandas as pd import torch import pickle -from models import rnn, lstm, bjrnn, cfrnn, copulaCPTS, dplstm, vanila_copula +from src.models import rnn, lstm, bjrnn, cfrnn, copulaCPTS, dplstm, vanila_copula datapath = '../../robotics_project/PythonRobotics/AerialNavigation/drone_3d_trajectory_following/data/dataset_smallnoise.npy' diff --git a/particle_exp.py b/src/experiments/particle_exp.py similarity index 97% rename from particle_exp.py rename to src/experiments/particle_exp.py index e1e85b3..2ecaa13 100644 --- a/particle_exp.py +++ b/src/experiments/particle_exp.py @@ -8,7 +8,7 @@ import os -from models import rnn, lstm, bjrnn, cfrnn, copulaCPTS, dplstm +from src.models import rnn, lstm, bjrnn, cfrnn, copulaCPTS, dplstm def experiment(train, valid, test, name='exp'): rnn_model = rnn.rnn(embedding_size=24, input_size=2, output_size=2, horizon=24) diff --git a/models/bjrnn.py b/src/models/bjrnn.py similarity index 100% rename from models/bjrnn.py rename to src/models/bjrnn.py diff --git a/models/cfrnn.py b/src/models/cfrnn.py similarity index 100% rename from models/cfrnn.py rename to src/models/cfrnn.py diff --git a/models/copulaCPTS.py b/src/models/copulaCPTS.py similarity index 100% rename from models/copulaCPTS.py rename to src/models/copulaCPTS.py diff --git a/models/dplstm.py b/src/models/dplstm.py similarity index 100% rename from models/dplstm.py rename to src/models/dplstm.py diff --git a/models/influence/__init__.py b/src/models/influence/__init__.py similarity index 100% rename from models/influence/__init__.py rename to src/models/influence/__init__.py diff --git a/models/influence/influence_computation.py b/src/models/influence/influence_computation.py similarity index 100% rename from models/influence/influence_computation.py rename to src/models/influence/influence_computation.py diff --git a/models/influence/influence_utils.py b/src/models/influence/influence_utils.py similarity index 100% rename from models/influence/influence_utils.py rename to src/models/influence/influence_utils.py diff --git a/models/lstm.py b/src/models/lstm.py similarity index 100% rename from models/lstm.py rename to src/models/lstm.py diff --git a/models/rnn.py b/src/models/rnn.py similarity index 100% rename from models/rnn.py rename to src/models/rnn.py diff --git a/models/rnn_rnn.py b/src/models/rnn_rnn.py similarity index 100% rename from models/rnn_rnn.py rename to src/models/rnn_rnn.py diff --git a/models/transformer.py b/src/models/transformer.py similarity index 100% rename from models/transformer.py rename to src/models/transformer.py diff --git a/models/utils.py b/src/models/utils.py similarity index 100% rename from models/utils.py rename to src/models/utils.py diff --git a/models/vanila_copula.py b/src/models/vanila_copula.py similarity index 100% rename from models/vanila_copula.py rename to src/models/vanila_copula.py