• inzel

    I dont quite understand. Can you please explain the change to me?

    posted in Pythonista read more
  • inzel

    I tested itg on my phone and am getting the same results. No idea what changed here

    posted in Pythonista read more
  • inzel

    Hey JonB!

    Yes I have done that. Its really odd as this was working. Could it be because I went to the iPadOS beta?

    posted in Pythonista read more
  • inzel

    @Vincekok Thank you!

    posted in Pythonista read more
  • inzel

    I just came back to this project and I get an error!

    r = requests.post(url, data=json.dumps(values), headers = headers)

    Object of type 'bytes' is not JSON serializable

    I havent made any changes so I cant imagine why this is suddenly happening.

    Any thoughts?

    posted in Pythonista read more
  • inzel

    Is there a way to install Pythonista’s photo module in other Python environments? I cant find it with pip.

    Thanks,

    Inzel

    posted in Pythonista read more
  • inzel

    I decided to clean it up a bit and use some functions. I havent added my comments yet but here is a fully working solution:

    import photos
    import requests
    import io
    import base64
    import json
    
    img = photos.capture_image()
    
    def getPhoto():
        with io.BytesIO() as output:
            img.save(output, 'JPEG')
            contents = output.getvalue()
            image = base64.b64encode(contents)  
        return image
    
    def enrollPhoto():
        subject_id = raw_input("Hello, What is your name: ? ")
        print("Thank you " + subject_id + "." + " Analyzing...")
        image = getPhoto()
        url = "https://api.kairos.com/enroll"
        values = {
            'image': image,
            'subject_id': subject_id,
            'gallery_name': subject_id
        }
        headers = {
            'Content-Type': 'application/json',
            'app_id': '***********',
            'app_key': '****************************'
        }   
        r = requests.post(url, data=json.dumps(values), headers = headers)
        parsed_json = json.loads(r.content)
        attr = parsed_json['images'][0]['attributes']
        img.show()
        print(json.dumps(attr, indent=2))
    
    enrollPhoto()
    

    Just need to put in your actual app_id and app_key. Should work right away. My next step will be getting a simple interface built and then comparing the pic of the user to existing pics of the same user to determine whether or not they gain access. Something like that anyways. Turned out to be a fun endeavor!

    posted in Pythonista read more
  • inzel

    I got it to work!

    import photos
    import requests
    import io
    import base64
    import json
    
    with io.BytesIO() as output:
        img = photos.capture_image()
        img.save(output,'JPEG')
        contents = output.getvalue()
        image = base64.b64encode(contents)
        
    url = "https://api.kairos.com/enroll"
    
    values = {
        'image': image,
        'subject_id': 'test',
        'gallery_name': 'test'
    }
    
    headers = {
        'Content-Type': 'application/json',
        'app_id': '*********',
        'app_key': '*************************'
    }
    
    request = requests.post(url, data=json.dumps(values), headers=headers)
    response = request.content
    
    print(response)```
    
    Thanks everyone!

    posted in Pythonista read more
  • inzel

    @cvp

    Ah perfect. That part works now.

    with io.BytesIO() as output:
        img = photos.capture_image()
        img.save(output,'JPEG')
        contents = output.getvalue()
        image = base64.b64encode(contents)
    

    I feel we are very close. I believe the final step now is determining the proper syntax to POST the payload. This would be much easier if I was able to use wireshark or another packet capture tool to see how the POST looks as its being sent but I cant do that on my iPad. This is what I am trying for my payload line but the syntax is incorrect:

    payload = '{'"image": + image + "',"' + '\n' + '"subject_id": "test" + ","' + '\n' + '"gallery_name": "test"'}'
    

    I need it to look like this when its sent:

    {
    “image”: image,
    “subject_id”: “test”,
    “gallery_name”:”test”
    }

    My apologies for all the new guy questions. I really appreciate all the help you guys have provided me so far. Im learning...

    posted in Pythonista read more
  • inzel

    @cvp

    I tried that as well as:

    img.save(output, format = ‘JPG’)

    And I get errors each time:

    img.save(output, ‘JPG’) :

    Traceback (most recent call last):
    File "/private/var/mobile/Containers/Shared/AppGroup/2D8E43AB-E263-4AE8-9F57-E62CCC11779D/Pythonista3/Documents/Kairos/kairos_upload.py", line 9, in <module>
    img.save(output,'JPG')
    File "/var/containers/Bundle/Application/3C9A09E3-8A1E-49E7-956B-A8E46A817D5A/Pythonista3.app/Frameworks/Py2Kit.framework/pylib/site-packages/PIL/Image.py", line 1704, in save
    save_handler = SAVE[format.upper()]
    KeyError: 'JPG'

    img.save(output, format = ‘JPG’) :

    Traceback (most recent call last):
    File "/private/var/mobile/Containers/Shared/AppGroup/2D8E43AB-E263-4AE8-9F57-E62CCC11779D/Pythonista3/Documents/Kairos/kairos_upload.py", line 9, in <module>
    img.save(output, format = 'JPG')
    File "/var/containers/Bundle/Application/3C9A09E3-8A1E-49E7-956B-A8E46A817D5A/Pythonista3.app/Frameworks/Py2Kit.framework/pylib/site-packages/PIL/Image.py", line 1704, in save
    save_handler = SAVE[format.upper()]
    KeyError: 'JPG'

    Maybe my syntax is wrong?

    posted in Pythonista read more

Internal error.

Oops! Looks like something went wrong!