Tools
Syntax Check
Request
Check the syntax of a code. The /ai/tools/syntax-check
API accepts requests in the following format:
BasicFilesRequest Model - Request to process files. | |
---|---|
language | string Enum Programming language. Options : ['C#', 'Py'] |
files | File Array Files to process. |
Example |
{ "language": "Py", "files": "[{"name": "file.py", "content": "fileContent"}]" ] } |
File Model - File for a AI. | |
---|---|
name | string Name of a file. |
content | string Contents of the file. |
Example |
{ "name": "string", "content": "string" } |
Responses
The /ai/tools/syntax-check
API provides a response in the following format:
200 Success
SyntaxCheckResponse Model - Response to a syntax check request. | |
---|---|
state | string State of the syntax check. |
version | string Version of the response. |
payload | string Array Code completion suggestions. |
payloadType | string Type of the payload, e.g. StringArray. |
Example |
{ "state": "End", "version": 2.0, "payload": [ "string" ], "payloadType": "StringArray" ] } |
401 Authentication Error
UnauthorizedError Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash. | |
---|---|
www_authenticate | string Header |
Examples
The following example demonstates syntax checking of codes through the cloud API.
from base64 import b64encode from hashlib import sha256 from time import time from requests import get, post BASE_URL = 'https://www.quantconnect.com/api/v2/' # You need to replace these with your actual credentials. # You can request your credentials at https://www.quantconnect.com/settings/ # You can find our organization ID at https://www.quantconnect.com/organization/ USER_ID = 0 API_TOKEN = '____' ORGANIZATION_ID = '____' def get_headers(): # Get timestamp timestamp = f'{int(time())}' time_stamped_token = f'{API_TOKEN}:{timestamp}'.encode('utf-8') # Get hased API token hashed_token = sha256(time_stamped_token).hexdigest() authentication = f'{USER_ID}:{hashed_token}'.encode('utf-8') authentication = b64encode(authentication).decode('ascii') # Create headers dictionary. return { 'Authorization': f'Basic {authentication}', 'Timestamp': timestamp } # Authenticate to verify credentials response = post(f'{BASE_URL}/authenticate', headers = get_headers()) print(response.json()) # -------------------- ### Syntax Check # Send a POST request to the /ai/tools/syntax-check endpoint to check code syntax if appropriate response = post(f'{BASE_URL}/ai/tools/syntax-check', headers=get_headers(), json={ "language": "Python", # Programming language of the code "files": [ # List of files to check { "name": "utils.py", # Name of the file "content": ''' # region imports from AlgorithmImports import * # endregion class Project(QCAlgorithm): def Initialize(self): self.AddEquity("SPY", Resolution.Minute) ''' # Content of the file (Python code) } ] }) # Parse the JSON response into python managable dict result = response.json() # Check if the request was successful and print the syntax check results if result['success']: print("Syntax Check Results:") print(result)