Git Product home page Git Product logo

lights-n-signs's Introduction

Lights and Signs Training

Description

This repository contains all the Lights and Signs sub-team training code and infrastructure. Most lights and signs development will happen in here and then get deployed to zeus once it is ready and tested.

Structure

The repository is structured in a way that represents the modularization of our system. Our framework resides in lns.

lns

This module encapsulates our framework package and shares the same name as it. We use this to create a high-level namespace for our work. Under lns we have our different systems that require training and well as a common folder.

All the code is well-documented, so this document just serves as a high-level view.

lns.common

This module contains all code shared between different training systems including dataset structures and other interfaces that should be implemented per training system to streamline the process. For more details, you can check out the code.

Installation for Development

Here is a sequence of commands to quickly get started with developing the repository.

Download and navigate to the repository:

  1. git clone [email protected]:aUToronto/autonomy/lights-n-signs-training.git
  2. cd lights-n-signs-training

Create a virtual environment for development: 3. python3 -m venv .venv 4. source .venv/bin/activate

Install the package in development mode with linter options: 5. pip install -U pip 6. pip install -e '.[lint]'

Run tox to verify installation, this should pass: 7. tox

You're ready to develop the repository.

Usage

Since you installed the package in development mode using -e, any changes you make in your package will be reflected in your Python environment. So the easiest way to test out changes would be to run an interpreter and just run the code through it. For example, if I changed the Preprocessor and I want to verify the preprocess function still exists, I can do the following in an interactive Python shell in the sourced environment (there should be a (.venv) in your command line):

from lns.common.preprocess import Preprocessor
Preprocessor.preprocess()

Development

The repository is quite well-documented and laid out, this is due to a number of factors:

  • We use a CI pipeline to enforce certain code quality and consistency regulations, as well as syntactic validity.
  • We require all contributions to develop to be merged in using a merge request rather that directly pushed.

NOTE: I would recommend cloning this repository (or any repository in general) using the git@ link rather than the https:// one, it makes authentication more secure and quicker in the long run.

Changes

After making any changes you should always verify that the code is still syntactically valid using by running tox. You can also see the Usage section above on how to manually run your code quickly.

Note that many editors have capabilities to do linting and syntax checking on-the-fly. All the linter configurations are in setup.cfg, so point your linter to that do load a consistent configuration. For Atom I use linter-pylama with an external instance pointed to the pylama under .venv/bin/pylama and setings under setup.cfg. Setting this up can be a little tricky, don't hesitate to ask @ziyadedher.

lights-n-signs's People

Contributors

adragnar avatar arkadyark avatar brian0615 avatar bwuzhang avatar cheongb002 avatar helen9975 avatar jacobjinkelly avatar jnazaren avatar mchanchee avatar nshdesai avatar quinbit avatar sherrychen127 avatar tiffanyyk avatar yanxi0830 avatar zachkroeze avatar ziyadedher avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.