fix python parsing, update deps

python parsing was broken & openai changed their internal API
master
michael 2022-12-06 17:35:18 -08:00
parent 66fb2933c9
commit da74e67ecd
6 changed files with 114 additions and 56 deletions

6
Pipfile.lock generated
View File

@ -299,11 +299,11 @@
},
"revchatgpt": {
"hashes": [
"sha256:36860b0297d5e846172c2fcfcdf27b4f19b80eac299b4e00c93a5dccf27f18c1",
"sha256:3fce7e348a8817e4335130a9ab2e523633c8c49cad1d2ca577571aeaa4a00115"
"sha256:6217e51914300123bc01f1519de68eeece8bdca0aa68bca71e540d293cbbc23c",
"sha256:fcebca9815761b6fcb5abbfb8b28bbee810d2a01fc148c19429066818a29d933"
],
"index": "pypi",
"version": "==0.0.23.5"
"version": "==0.0.30"
},
"six": {
"hashes": [

View File

@ -1,9 +1,10 @@
import json
import yaml
from yaml import CLoader, CDumper
from revChatGPT.revChatGPT import Chatbot
import os
from sys import argv
import re
from parse import py
# from argparse import ArgumentParser
@ -23,39 +24,20 @@ infile = open(argv[1], "r")
# print(infile)
# top level functions only for now
functions = []
function_head = ""
function_content = ""
function_body_indent_level = 0
for line in infile:
curr_indent_level = len(line) - len(line.lstrip())
function_found = re.search('^def(\s+)(.*)\(.*\)(\s*):$', line.strip())
if function_found and len(function_head) == 0:
function_head = re.search("(\s+)(.*)\(.*\)", line).string.replace('def', '').replace('):', ')').strip()
function_content = line
function_body_indent_level = curr_indent_level + 1
elif len(function_head) > 0 and (curr_indent_level < function_body_indent_level):
functions.append({
"head": function_head,
"content": function_content
})
if function_found:
function_head = ""
function_content = ""
elif len(function_head) > 0 and curr_indent_level >= function_body_indent_level:
function_content += line
functions = py.find_toplevel_funcs(infile)
print(f"Found {len(functions)} functions.")
doc_prompt_head = "Explain what this function does in one short sentence, then give example code that uses the function:\n"
# doc_prompt_example = "Return only example code using this function:\n"
# for function in functions:
# print(function["content"])
# print("------------------")
bot = Chatbot({
'Authorization': config['Authorization'],
'session_token': config['session_token'],
# 'session': config['password']
}, conversation_id=None)
bot.refresh_session()

View File

@ -1,58 +1,101 @@
# Documentation for `example_code.py`
# Documentation for `example/example_code.py`
## `remove_dirt(image)`
This function removes small dirt and noise from a binary image by closing small holes and removing small objects.
This function removes small elements from an image using area closing morphological operation.
Here is an example of how to use the function:
Example:
```
import skimage.morphology as morphology
from skimage import data
# Import the required module
from skimage import morphology
# Load a binary image
image = data.coins() > 100
# Load the image
image = skimage.io.imread('image.jpg')
# Remove dirt from the image
cleaned_image = remove_dirt(image)
# Apply the function to remove small elements from the image
image = remove_dirt(image)
# Show the result
skimage.io.imshow(image)
```
## `calculate_area(countour)`
This function calculates the area of a contour in an image.
Example:
```
# Import the required modules
import cv2 as cv
import numpy as np
# Load the image and find the contours
image = cv.imread('image.jpg')
contours, _ = cv.findContours(image, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
# Iterate over the contours and calculate their areas
for contour in contours:
area = calculate_area(contour)
print('Area of contour:', area)
```
## `center_of_mass(X)`
This function calculates the center of mass of a 2D shape defined by a set of points.
This function calculates the center of mass of a set of points.
Here is an example of how to use the function:
Example:
```
import numpy as np
# Define a set of points that define a shape
X = np.array([[0, 0], [0, 1], [1, 1], [1, 0]])
# Define a set of points
X = np.array([[1,2], [3,4], [5,6]])
# Calculate the center of mass of the shape
center_of_mass = center_of_mass(X)
# Calculate the center of mass of the points
center = center_of_mass(X)
# Print the center of mass
print(center_of_mass)
# Print the result
print('Center of mass:', center)
```
The output will be `[0.5, 0.5]`, which is the coordinates of the center of the square defined by the points `X`.
The output will be `Center of mass: [3. 4.]`.
## `center_of_mass(X)`
This function calculates the center of mass of a 2D shape defined by a set of points.
This function calculates the center of mass of a set of points.
Here is an example of how to use the function:
Example:
```
import numpy as np
# Define a set of points that define a shape
X = np.array([[0, 0], [0, 1], [1, 1], [1, 0]])
# Define a set of points
X = np.array([[1,2], [3,4], [5,6]])
# Calculate the center of mass of the shape
center_of_mass = center_of_mass(X)
# Calculate the center of mass of the points
center = center_of_mass(X)
# Print the center of mass
print(center_of_mass)
# Print the result
print('Center of mass:', center)
```
The output will be `[0.5, 0.5]`, which is the coordinates of the center of the square defined by the points `X`.
The output will be `Center of mass: [3. 4.]`.
## `rg_ratio_normalize(imgarr)`
This function normalizes the temperature values in an image array using the RG ratio and a pyrometry calibration formula.
Example:
```
# Import the required modules
import numpy as np
# Load the image array
imgarr = np.array(...)
# Normalize the temperature values in the image
imgnew, tmin, tmax = rg_ratio_normalize(imgarr)
# Print the resulting minimum and maximum temperature values
print('Minimum temperature:', tmin)
print('Maximum temperature:', tmax)
```

View File

@ -4,12 +4,14 @@ def remove_dirt(image):
return image
def calculate_area(countour):
c = np.expand_dims(countour.astype(np.float32), 1)
c = cv.UMat(c)
return cv.contourArea(c)
def center_of_mass(X):
x = X[:,0]
y = X[:,1]
@ -22,6 +24,7 @@ def center_of_mass(X):
img = remove_dirt(thresh_gray)
def rg_ratio_normalize(imgarr):
# set max & min to most extreme values,
# work up & down respectively from there

0
parse/__init__.py Normal file
View File

30
parse/py.py Normal file
View File

@ -0,0 +1,30 @@
import re
def find_toplevel_funcs(lines):
functions = []
function_head = ""
function_content = ""
function_body_indent_level = 0
for line in lines:
curr_indent_level = len(line) - len(line.lstrip())
function_found = re.search('^def(\s+)(.*)\(.*\)(\s*):(\s*)$', line.strip())
if len(function_head.strip()) > 0 and (curr_indent_level < function_body_indent_level):
functions.append({
"head": function_head,
"content": function_content
})
if function_found:
function_head = ""
function_content = ""
if function_found and len(function_head) == 0:
function_head = re.search("(\s+)(.*)\(.*\)", line).string.replace('def', '').replace('):', ')').strip()
function_content = line
function_body_indent_level = curr_indent_level + 1
elif not function_found and len(function_head.strip()) > 0 and curr_indent_level >= function_body_indent_level:
function_content += line
return functions