[Tutor] Feedback on coding style

Leam Hall leamhall at gmail.com
Sun Jun 26 16:21:43 EDT 2022


Happy to help!

My apologies, I sent you the direct link to the code. You should be able to clone:

	https://github.com/LeamHall/admin_tools

and then it'll be in there. You need to create the "data" directory, and then run it with an "add" option to create the file. Of course, if you don't care about the timestamps at first, you can just copy in the data, where each line is:

	systolic diastolic pulse 0

The last 0 is the timestamp position, and each element in the line is white space delimited. you can manually enter the timestamp, if you like.

Leam
   

On 6/26/22 15:10, Alex Kleider wrote:
> Thanks for (so promptly!) getting back to me.
> I already tried that and was unsuccessful:
> (perci) alex at t460:~/Notes/Py$ cd ~/Git/LH/
> (perci) alex at t460:~/Git/LH$ git clone
> https://github.com/LeamHall/admin_tools/blob/master/bp_tracker.py
> Cloning into 'bp_tracker.py'...
> fatal: repository
> 'https://github.com/LeamHall/admin_tools/blob/master/bp_tracker.py/'
> not found
> (perci) alex at t460:~/Git/LH$
> 
> I was able (successfully) to clone your resume_writer:
> $ git clone https://github.com/LeamHall/resume_writer
> I'm not very proficient with git and github (which is probably pretty
> apparent:-)
> The bp_tracker seems to be embedded within something else so I'm
> guessing that's what's leading to the error.
> a
> 
> On Sun, Jun 26, 2022 at 12:55 PM Leam Hall <leamhall at gmail.com> wrote:
>>
>> Hey Alex, here's the code:
>>
>>          https://github.com/LeamHall/admin_tools/blob/master/bp_tracker.py
>>
>> I try to keep things simple, it lets you specify a file "-f", and you can use "-a" to add numbers. The added data gets appended to a file, with the timestamp of the add as a data point. The plan is to allow a "for the past X days" as a range, without forcing the file to remain in order. For example:
>>
>>          150 93 73 20220512.0832
>>
>> That's systolic, diastolic, pulse, and the automatically appended timestamp in "YYYYMMDD.HHMM" format.
>>
>> Leam
>>
>>
>> On 6/26/22 14:37, Alex Kleider wrote:
>>> I don't see this code on your github account.
>>> (https://github.com/LeamHall?tab=repositories)
>>> I'd be interested in seeing the current version having done something
>>> somewhat related.
>>> (https://github.com/alexKleider/blood-pressure-record)
>>> My code needs a little updating (with regard to the README at least)
>>> which I'll do if prodded a bit:-)
>>> a
>>> PS Disclaimer: python for me is an avocation, not a vocation!
>>>
>>> On Mon, May 9, 2022 at 5:03 AM Leam Hall <leamhall at gmail.com> wrote:
>>>>
>>>> Hey all,
>>>>
>>>> I'm looking for general Python code critique, feel free to share snarky comments.  :)  The parameters are:
>>>>     1. Code to Python 3.6 or so.
>>>>     2. Use only the standard library or locally created modules.
>>>>     3. Keep it clean and simple so new Pythonistas can understand and contribute.
>>>>
>>>> Let me know how to make this better.
>>>>
>>>> Leam
>>>> --
>>>> Automation Engineer        (reuel.net/resume)
>>>> Scribe: The Domici War     (domiciwar.net)
>>>> General Ne'er-do-well      (github.com/LeamHall)
>>>>
>>>> ###
>>>>
>>>> #!/usr/bin/env python3
>>>>
>>>> # name:     bp_tracker.py
>>>> # version:  0.0.1
>>>> # date:     20220509
>>>> # author:   Leam Hall
>>>> # desc:     Track and report on blood pressure numbers.
>>>>
>>>> # Notes:
>>>> #  Datafile expects three ints and one float, in order.
>>>>
>>>> # TODO
>>>> #   Add statistical analysis for standard deviation.
>>>> #   Report based on time of day (early, midmorning, afternoon, evening)
>>>> #   (?) Add current distance from goal?
>>>>
>>>> import argparse
>>>> from datetime import datetime
>>>> import os.path
>>>>
>>>> def array_from_file(report_file):
>>>>      data = []
>>>>      with open(report_file, 'r') as file:
>>>>        for line in file:
>>>>          line.strip()
>>>>          datum = line.split()
>>>>          if len(datum) == 4:
>>>>            data.append(datum)
>>>>          else:
>>>>            continue
>>>>      return data
>>>>
>>>> def report(report_data):
>>>>      highest_systolic  = 0
>>>>      highest_diastolic = 0
>>>>      highest_pulse     = 0
>>>>      latest            = -1.0
>>>>      for datum in report_data:
>>>>        systolic  = int(datum[0])
>>>>        diastolic = int(datum[1])
>>>>        pulse     = int(datum[2])
>>>>        date      = float(datum[3])
>>>>        if systolic > highest_systolic:
>>>>          highest_systolic = systolic
>>>>          highest_systolic_event = datum
>>>>        if diastolic > highest_diastolic:
>>>>          highest_diastolic = diastolic
>>>>          highest_diastolic_event = datum
>>>>        if pulse > highest_pulse:
>>>>          highest_pulse = pulse
>>>>          highest_pulse_event = datum
>>>>        if date > latest:
>>>>          latest_record = datum
>>>>
>>>>      print("Highest Systolic: {}/{} {} {}".format(*highest_systolic_event))
>>>>      print("Highest Diastolic: {}/{} {} {}".format(*highest_diastolic_event))
>>>>      print("Highest Pulse: {}/{} {} {}".format(*highest_pulse_event))
>>>>      print("Latest Record: {}/{} {} {}".format(*latest_record))
>>>>
>>>> def result_string(report_list):
>>>>      return "{} {} {} {}".format(*report_list)
>>>>
>>>> report_file = "bp_numbers.txt"
>>>>
>>>> parser = argparse.ArgumentParser()
>>>> parser.add_argument("-a", "--add", nargs=3,
>>>>      help = "Add in the order of systolic, diastolic, pulse")
>>>> parser.add_argument("-f", "--file", help = "Report file")
>>>> args    = parser.parse_args()
>>>>
>>>> if args.file:
>>>>      report_file = args.file
>>>>
>>>> if args.add:
>>>>      # This format allows sequencing now and parsing later.
>>>>      timestamp   = datetime.now().strftime("%Y%m%d.%H%M")
>>>>      this_report = args.add
>>>>      this_report.append(timestamp)
>>>>      with open(report_file, 'a') as file:
>>>>        file.write(result_string(this_report) + "\n")
>>>> else:
>>>>      # Default behavior is to report.
>>>>      if os.path.exists(report_file):
>>>>        try:
>>>>          report_data = array_from_file(report_file)
>>>>          report(report_data)
>>>>        except:
>>>>          print("Error processing report data")
>>>>      else:
>>>>        print("Cannot find ", report_file)
>>>>
>>>> ###
>>>> _______________________________________________
>>>> Tutor maillist  -  Tutor at python.org
>>>> To unsubscribe or change subscription options:
>>>> https://mail.python.org/mailman/listinfo/tutor
>>>
>>>
>>>
>>
>> --
>> Automation Engineer        (reuel.net/resume)
>> Scribe: The Domici War     (domiciwar.net)
>> General Ne'er-do-well      (github.com/LeamHall)
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> To unsubscribe or change subscription options:
>> https://mail.python.org/mailman/listinfo/tutor
> 
> 
> 

-- 
Automation Engineer        (reuel.net/resume)
Scribe: The Domici War     (domiciwar.net)
General Ne'er-do-well      (github.com/LeamHall)


More information about the Tutor mailing list