forked from PAWPAW-Mirror/lib_xua
Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
758de74946 | ||
|
|
e6f6856df9 | ||
|
|
871ffbc5dd | ||
|
|
dde097b130 | ||
|
|
e8731a554c | ||
|
|
0766275a9a | ||
|
|
ce4424c471 | ||
|
|
740f1250c7 | ||
|
|
45d699321d | ||
|
|
e0b8cdf5f7 | ||
|
|
ecaeb89ea8 | ||
|
|
c4f32aceab | ||
|
|
2164d8d023 | ||
|
|
a08060896d | ||
|
|
948546e0d0 | ||
|
|
ab2519ab4f | ||
|
|
94ea3ba306 | ||
|
|
3a4e626472 | ||
|
|
a61f0e7a5f | ||
|
|
cd29ca91e3 | ||
|
|
7ccd5b526d | ||
|
|
5c2a69288c | ||
|
|
fda4c3afb1 | ||
|
|
05dacde043 | ||
|
|
b7cbc5fe9e | ||
|
|
468b69cb62 | ||
|
|
74772d864e | ||
|
|
c18ca44768 | ||
|
|
82f651d930 | ||
|
|
3d9266a080 | ||
|
|
4ac07b2df4 | ||
|
|
afcf576d43 | ||
|
|
bb73f2140e | ||
|
|
c260039d0b | ||
|
|
a89371c143 | ||
|
|
f3ab9a8532 | ||
|
|
fff1568c6f |
@@ -1,6 +1,24 @@
|
|||||||
lib_xua Change Log
|
lib_xua Change Log
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
1.1.1
|
||||||
|
-----
|
||||||
|
|
||||||
|
* RESOLVED: Zero length input packets generated before enumeration causing I2S
|
||||||
|
timing pushout at startup
|
||||||
|
* CHANGED: Pin Python package versions
|
||||||
|
* REMOVED: not necessary cpanfile
|
||||||
|
|
||||||
|
1.1.0
|
||||||
|
-----
|
||||||
|
|
||||||
|
* ADDED: Ability to read or modify serial number string
|
||||||
|
|
||||||
|
1.0.1
|
||||||
|
-----
|
||||||
|
|
||||||
|
* FIXED: Wrong size of vendor and product strings
|
||||||
|
|
||||||
1.0.0
|
1.0.0
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|||||||
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@@ -1,4 +1,4 @@
|
|||||||
@Library('xmos_jenkins_shared_library@develop') _
|
@Library('xmos_jenkins_shared_library@v0.14.2') _
|
||||||
|
|
||||||
getApproval()
|
getApproval()
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ pipeline {
|
|||||||
agent none
|
agent none
|
||||||
environment {
|
environment {
|
||||||
REPO = 'lib_xua'
|
REPO = 'lib_xua'
|
||||||
VIEW = "${env.JOB_NAME.contains('PR-') ? REPO+'_'+env.CHANGE_TARGET : REPO+'_'+env.BRANCH_NAME}"
|
VIEW = getViewName(REPO)
|
||||||
}
|
}
|
||||||
options {
|
options {
|
||||||
skipDefaultCheckout()
|
skipDefaultCheckout()
|
||||||
|
|||||||
7
Pipfile
7
Pipfile
@@ -1,7 +0,0 @@
|
|||||||
[[source]]
|
|
||||||
name = "pypi"
|
|
||||||
url = "https://pypi.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
flake8 = "*"
|
|
||||||
@@ -442,6 +442,16 @@
|
|||||||
#define CODEC_MASTER (0)
|
#define CODEC_MASTER (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Serial Number String used by the device
|
||||||
|
*
|
||||||
|
* Default: ""
|
||||||
|
*/
|
||||||
|
#ifndef SERIAL_STR
|
||||||
|
#define SERIAL_STR ""
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Vendor String used by the device. This is also pre-pended to various strings used by the design.
|
* @brief Vendor String used by the device. This is also pre-pended to various strings used by the design.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -62,6 +62,16 @@ void XUA_Endpoint0_setProductStr(char * unsafe product_str);
|
|||||||
void XUA_Endpoint0_setProductStr(char * product_str);
|
void XUA_Endpoint0_setProductStr(char * product_str);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** Function to set the Serial string
|
||||||
|
*
|
||||||
|
* \param serial_str Serial string to set
|
||||||
|
*/
|
||||||
|
#ifdef __XC__
|
||||||
|
void XUA_Endpoint0_setSerialStr(char * unsafe serial_str);
|
||||||
|
#else
|
||||||
|
void XUA_Endpoint0_setSerialStr(char * serial_str);
|
||||||
|
#endif
|
||||||
|
|
||||||
/** Function to set the BCD device
|
/** Function to set the BCD device
|
||||||
*
|
*
|
||||||
* \param bcdDevice BCD device to set
|
* \param bcdDevice BCD device to set
|
||||||
@@ -72,34 +82,44 @@ void XUA_Endpoint0_setBcdDevice(unsigned short bcdDevice);
|
|||||||
|
|
||||||
/** Function to get the Vendor string
|
/** Function to get the Vendor string
|
||||||
*
|
*
|
||||||
* \param vid vendor string
|
* \return vendor string
|
||||||
*/
|
*/
|
||||||
#ifdef __XC__
|
#ifdef __XC__
|
||||||
char * unsafe XUA_Endpoint0_getVendorStr();
|
char * unsafe XUA_Endpoint0_getVendorStr();
|
||||||
#else
|
#else
|
||||||
char * XUA_Endpoint0_getVendorStr(;
|
char * XUA_Endpoint0_getVendorStr();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Function to get the Product string
|
|
||||||
*
|
|
||||||
* \param pid Product string
|
|
||||||
*/
|
|
||||||
#ifdef __XC__
|
|
||||||
char * unsafe XUA_Endpoint0_getProductStr();
|
|
||||||
#else
|
|
||||||
char * XUA_Endpoint0_getProductStr(;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Function to get the Vendor string
|
|
||||||
*
|
|
||||||
* \return Vendor string
|
|
||||||
*/
|
|
||||||
unsigned short XUA_Endpoint0_getVendorId();
|
|
||||||
|
|
||||||
/** Function to get the Product string
|
/** Function to get the Product string
|
||||||
*
|
*
|
||||||
* \return Product string
|
* \return Product string
|
||||||
*/
|
*/
|
||||||
|
#ifdef __XC__
|
||||||
|
char * unsafe XUA_Endpoint0_getProductStr();
|
||||||
|
#else
|
||||||
|
char * XUA_Endpoint0_getProductStr();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Function to get the Serial Number string
|
||||||
|
*
|
||||||
|
* \return Serial string
|
||||||
|
*/
|
||||||
|
#ifdef __XC__
|
||||||
|
char * unsafe XUA_Endpoint0_getSerialStr();
|
||||||
|
#else
|
||||||
|
char * XUA_Endpoint0_getSerialStr();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Function to get the Vendor ID
|
||||||
|
*
|
||||||
|
* \return Vendor ID
|
||||||
|
*/
|
||||||
|
unsigned short XUA_Endpoint0_getVendorId();
|
||||||
|
|
||||||
|
/** Function to get the Product ID
|
||||||
|
*
|
||||||
|
* \return Product ID
|
||||||
|
*/
|
||||||
unsigned short XUA_Endpoint0_getProductId();
|
unsigned short XUA_Endpoint0_getProductId();
|
||||||
|
|
||||||
/** Function to get the BCD device
|
/** Function to get the BCD device
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
VERSION = 1.0.0
|
VERSION = 1.1.1
|
||||||
|
|
||||||
DEPENDENT_MODULES = lib_logging(>=3.0.0) \
|
DEPENDENT_MODULES = lib_logging(>=3.0.0) \
|
||||||
lib_xassert(>=4.0.0) \
|
lib_xassert(>=4.0.0) \
|
||||||
lib_xud(>=0.2.0) \
|
lib_xud(>=1.0.0) \
|
||||||
lib_spdif(>=4.0.0) \
|
lib_spdif(>=4.0.0) \
|
||||||
lib_mic_array(>=4.0.0)
|
lib_mic_array(>=4.0.0)
|
||||||
|
|
||||||
|
|||||||
@@ -36,9 +36,10 @@ extern unsigned int g_curSamFreqMultiplier;
|
|||||||
#define SET_SHARED_GLOBAL0(x,y) SET_SHARED_GLOBAL(x,y)
|
#define SET_SHARED_GLOBAL0(x,y) SET_SHARED_GLOBAL(x,y)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Initialise g_speed now so we get a sensible packet size until we start properly calculating feedback in the SoF case */
|
||||||
/* Global var for speed. Related to feedback. Used by input stream to determine IN packet size */
|
/* Without this, zero size input packets fill the input FIFO and it takes a long time to clear out when feedback starts */
|
||||||
unsigned g_speed;
|
/* This can cause a delay to the decouple ISR being serviced pushing our I2S timing. Initialising solves this */
|
||||||
|
unsigned g_speed = (AUDIO_CLASS == 2) ? (DEFAULT_FREQ/8000) << 16 : (DEFAULT_FREQ/1000) << 16;
|
||||||
unsigned g_freqChange = 0;
|
unsigned g_freqChange = 0;
|
||||||
unsigned feedbackValid = 0;
|
unsigned feedbackValid = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -118,6 +118,9 @@ char g_product_str[XUA_MAX_STR_LEN] = PRODUCT_STR_A2;
|
|||||||
char g_product_str[XUA_MAX_STR_LEN] = PRODUCT_STR_A1;
|
char g_product_str[XUA_MAX_STR_LEN] = PRODUCT_STR_A1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Global variable for current USB Serial Number strings */
|
||||||
|
char g_serial_str[XUA_MAX_STR_LEN] = SERIAL_STR;
|
||||||
|
|
||||||
/* Subslot */
|
/* Subslot */
|
||||||
const unsigned g_subSlot_Out_HS[OUTPUT_FORMAT_COUNT] = {HS_STREAM_FORMAT_OUTPUT_1_SUBSLOT_BYTES,
|
const unsigned g_subSlot_Out_HS[OUTPUT_FORMAT_COUNT] = {HS_STREAM_FORMAT_OUTPUT_1_SUBSLOT_BYTES,
|
||||||
#if(OUTPUT_FORMAT_COUNT > 1)
|
#if(OUTPUT_FORMAT_COUNT > 1)
|
||||||
@@ -234,6 +237,8 @@ void XUA_Endpoint0_setVendorId(unsigned short vid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer) {
|
void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer) {
|
||||||
|
debug_printf("concatenateAndCopyStrings() for \"%s\" and \"%s\"\n", string1, string2);
|
||||||
|
|
||||||
memset(string_buffer, '\0', strlen(string_buffer));
|
memset(string_buffer, '\0', strlen(string_buffer));
|
||||||
|
|
||||||
uint32_t remaining_buffer_size = MIN(strlen(string1), XUA_MAX_STR_LEN-1);
|
uint32_t remaining_buffer_size = MIN(strlen(string1), XUA_MAX_STR_LEN-1);
|
||||||
@@ -242,9 +247,11 @@ void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer
|
|||||||
if (total_string_size==XUA_MAX_STR_LEN-1) {
|
if (total_string_size==XUA_MAX_STR_LEN-1) {
|
||||||
remaining_buffer_size = XUA_MAX_STR_LEN-1-strlen(string1);
|
remaining_buffer_size = XUA_MAX_STR_LEN-1-strlen(string1);
|
||||||
} else {
|
} else {
|
||||||
remaining_buffer_size = strlen(string1);
|
remaining_buffer_size = strlen(string2);
|
||||||
}
|
}
|
||||||
|
|
||||||
strncat(string_buffer, string2, remaining_buffer_size);
|
strncat(string_buffer, string2, remaining_buffer_size);
|
||||||
|
debug_printf("concatenateAndCopyStrings() creates \"%s\"\n", string_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void XUA_Endpoint0_setStrTable() {
|
void XUA_Endpoint0_setStrTable() {
|
||||||
@@ -285,18 +292,26 @@ void XUA_Endpoint0_setStrTable() {
|
|||||||
concatenateAndCopyStrings(g_product_str, "", g_strTable.usbInputTermStr_Audio2);
|
concatenateAndCopyStrings(g_product_str, "", g_strTable.usbInputTermStr_Audio2);
|
||||||
concatenateAndCopyStrings(g_product_str, "", g_strTable.usbOutputTermStr_Audio2);
|
concatenateAndCopyStrings(g_product_str, "", g_strTable.usbOutputTermStr_Audio2);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// update Serial strings
|
||||||
|
concatenateAndCopyStrings(g_serial_str, "", g_strTable.serialStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void XUA_Endpoint0_setVendorStr(char* vendor_str) {
|
void XUA_Endpoint0_setVendorStr(char* vendor_str) {
|
||||||
debug_printf("XUA_Endpoint0_setVendorStr() with string %s", vendor_str);
|
debug_printf("XUA_Endpoint0_setVendorStr() with string %s\n", vendor_str);
|
||||||
concatenateAndCopyStrings(vendor_str, "", g_vendor_str);
|
concatenateAndCopyStrings(vendor_str, "", g_vendor_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void XUA_Endpoint0_setProductStr(char* product_str) {
|
void XUA_Endpoint0_setProductStr(char* product_str) {
|
||||||
debug_printf("XUA_Endpoint0_setProductStr() with string %s", product_str);
|
debug_printf("XUA_Endpoint0_setProductStr() with string %s\n", product_str);
|
||||||
concatenateAndCopyStrings(product_str, "", g_product_str);
|
concatenateAndCopyStrings(product_str, "", g_product_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XUA_Endpoint0_setSerialStr(char* serial_str) {
|
||||||
|
debug_printf("XUA_Endpoint0_setSerialStr() with string %s\n", serial_str);
|
||||||
|
concatenateAndCopyStrings(serial_str, "", g_serial_str);
|
||||||
|
}
|
||||||
|
|
||||||
char* XUA_Endpoint0_getVendorStr() {
|
char* XUA_Endpoint0_getVendorStr() {
|
||||||
return g_strTable.vendorStr;
|
return g_strTable.vendorStr;
|
||||||
}
|
}
|
||||||
@@ -309,6 +324,10 @@ char* XUA_Endpoint0_getProductStr() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* XUA_Endpoint0_getSerialStr() {
|
||||||
|
return g_strTable.serialStr;
|
||||||
|
}
|
||||||
|
|
||||||
void XUA_Endpoint0_setProductId(unsigned short pid) {
|
void XUA_Endpoint0_setProductId(unsigned short pid) {
|
||||||
#if (AUDIO_CLASS == 1)
|
#if (AUDIO_CLASS == 1)
|
||||||
devDesc_Audio1.idProduct = pid;
|
devDesc_Audio1.idProduct = pid;
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
#define XUA_CTRL_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\08"
|
#define XUA_CTRL_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\08"
|
||||||
#define XUA_MIDI_OUT_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\09"
|
#define XUA_MIDI_OUT_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\09"
|
||||||
#define XUA_MIDI_IN_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a"
|
#define XUA_MIDI_IN_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a"
|
||||||
|
#define XUA_SERIAL_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b"
|
||||||
|
|
||||||
// The value below must match the length of XUA_DESCR_EMPTY_STRING.
|
// The value below must match the length of XUA_DESCR_EMPTY_STRING.
|
||||||
#define XUA_MAX_STR_LEN (32)
|
#define XUA_MAX_STR_LEN (32)
|
||||||
@@ -334,7 +335,7 @@ StringDescTable_t g_strTable =
|
|||||||
{
|
{
|
||||||
.langID = "\x09\x04", /* US English */
|
.langID = "\x09\x04", /* US English */
|
||||||
.vendorStr = XUA_VENDOR_EMPTY_STRING,
|
.vendorStr = XUA_VENDOR_EMPTY_STRING,
|
||||||
.serialStr = "",
|
.serialStr = XUA_SERIAL_EMPTY_STRING,
|
||||||
#if (AUDIO_CLASS == 2)
|
#if (AUDIO_CLASS == 2)
|
||||||
.productStr_Audio2 = XUA_PRODUCT_EMPTY_STRING,
|
.productStr_Audio2 = XUA_PRODUCT_EMPTY_STRING,
|
||||||
.outputInterfaceStr_Audio2 = XUA_PRODUCT_EMPTY_STRING,
|
.outputInterfaceStr_Audio2 = XUA_PRODUCT_EMPTY_STRING,
|
||||||
@@ -434,7 +435,7 @@ USB_Descriptor_Device_t devDesc_Audio1 =
|
|||||||
.bcdDevice = BCD_DEVICE,
|
.bcdDevice = BCD_DEVICE,
|
||||||
.iManufacturer = offsetof(StringDescTable_t, vendorStr)/sizeof(char *),
|
.iManufacturer = offsetof(StringDescTable_t, vendorStr)/sizeof(char *),
|
||||||
.iProduct = offsetof(StringDescTable_t, productStr_Audio1)/sizeof(char *),
|
.iProduct = offsetof(StringDescTable_t, productStr_Audio1)/sizeof(char *),
|
||||||
.iSerialNumber = 0,
|
.iSerialNumber = offsetof(StringDescTable_t, serialStr)/sizeof(char *),
|
||||||
.bNumConfigurations = 1
|
.bNumConfigurations = 1
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
@@ -470,7 +471,7 @@ USB_Descriptor_Device_t devDesc_Audio2 =
|
|||||||
.bcdDevice = BCD_DEVICE,
|
.bcdDevice = BCD_DEVICE,
|
||||||
.iManufacturer = offsetof(StringDescTable_t, vendorStr)/sizeof(char *),
|
.iManufacturer = offsetof(StringDescTable_t, vendorStr)/sizeof(char *),
|
||||||
.iProduct = offsetof(StringDescTable_t, productStr_Audio2)/sizeof(char *),
|
.iProduct = offsetof(StringDescTable_t, productStr_Audio2)/sizeof(char *),
|
||||||
.iSerialNumber = 0,
|
.iSerialNumber = offsetof(StringDescTable_t, serialStr)/sizeof(char *),
|
||||||
.bNumConfigurations = 0x02 /* Set to 2 such that windows does not load composite driver */
|
.bNumConfigurations = 0x02 /* Set to 2 such that windows does not load composite driver */
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -493,7 +494,7 @@ unsigned char devDesc_Null[] =
|
|||||||
(BCD_DEVICE >> 8), /* 13 bcdDevice : Device release number */
|
(BCD_DEVICE >> 8), /* 13 bcdDevice : Device release number */
|
||||||
offsetof(StringDescTable_t, vendorStr)/sizeof(char *),
|
offsetof(StringDescTable_t, vendorStr)/sizeof(char *),
|
||||||
offsetof(StringDescTable_t, productStr_Audio2)/sizeof(char *),
|
offsetof(StringDescTable_t, productStr_Audio2)/sizeof(char *),
|
||||||
0, /* 16 iSerialNumber : Index of serial number decriptor */
|
offsetof(StringDescTable_t, serialStr)/sizeof(char *), /* 16 iSerialNumber : Index of serial number decriptor */
|
||||||
0x01 /* 17 bNumConfigurations : Number of possible configs */
|
0x01 /* 17 bNumConfigurations : Number of possible configs */
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2018, XMOS Ltd, All rights reserved
|
// Copyright (c) 2018-2020, XMOS Ltd, All rights reserved
|
||||||
//#include "devicedefines.h"
|
//#include "devicedefines.h"
|
||||||
|
|
||||||
#define MAX_MIX_COUNT 8
|
#define MAX_MIX_COUNT 8
|
||||||
|
|||||||
19
python/setup.py
Normal file
19
python/setup.py
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Copyright (c) 2020, XMOS Ltd, All rights reserved
|
||||||
|
import setuptools
|
||||||
|
|
||||||
|
# Another repository might depend on python code defined in this one. The
|
||||||
|
# procedure to set up a suitable python environment for that repository may
|
||||||
|
# pip-install this one as editable using this setup.py file. To minimise the
|
||||||
|
# chance of version conflicts while ensuring a minimal degree of conformity,
|
||||||
|
# the 3rd-party modules listed here require the same major version and at
|
||||||
|
# least the same minor version as specified in the requirements.txt file.
|
||||||
|
# The same modules should appear in the requirements.txt file as given below.
|
||||||
|
setuptools.setup(
|
||||||
|
name='lib_xua',
|
||||||
|
packages=setuptools.find_packages(),
|
||||||
|
install_requires=[
|
||||||
|
'flake8~=3.8',
|
||||||
|
],
|
||||||
|
dependency_links=[
|
||||||
|
],
|
||||||
|
)
|
||||||
34
requirements.txt
Normal file
34
requirements.txt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# python_version 3.7.6
|
||||||
|
#
|
||||||
|
# The parse_version_from_requirements() function in the installPipfile.groovy
|
||||||
|
# file of the Jenkins Shared Library uses the python_version comment to set
|
||||||
|
# the version of python used.
|
||||||
|
|
||||||
|
# Distributed (released) dependencies
|
||||||
|
#
|
||||||
|
# The python modules listed below specify a known working combination required
|
||||||
|
# by the python code in this repository. The procedure used to set up a
|
||||||
|
# suitable python environment for it installs the version of each module in
|
||||||
|
# the list. Using a specific version ensures a controlled infrastructure for
|
||||||
|
# development, testing and release of this repository.
|
||||||
|
#
|
||||||
|
# Another repository might depend on python code defined in this one. The
|
||||||
|
# procedure to set up a suitable python environment for that repository may
|
||||||
|
# pip-install this one as editable using this repository's setup.py file. The
|
||||||
|
# same modules should appear in the setup.py list as given below.
|
||||||
|
|
||||||
|
flake8==3.8.3
|
||||||
|
|
||||||
|
# Development dependencies
|
||||||
|
#
|
||||||
|
# Each link listed below specifies the path to a setup.py file which are
|
||||||
|
# installed in editable mode with '-e $PATH' (without the quotes).
|
||||||
|
#
|
||||||
|
# If python code in this repository depends on python code under development
|
||||||
|
# in another repository, then an entry for that other respository should
|
||||||
|
# appear in this list instead of the released dependencies list.
|
||||||
|
#
|
||||||
|
# If this repository uses the setup functionality (e.g., script entry points)
|
||||||
|
# of its own setup.py file, then this list must include an entry for that
|
||||||
|
# setup.py file, e.g., '-e .' or '-e ./python' (without the quotes).
|
||||||
|
-e ./python
|
||||||
Reference in New Issue
Block a user