• Apr 15, 2021 •NoahEaton
0 likes • 2 views
import anytree as at import random as rm # Generate a tree with node_count many nodes. Each has a number key that shows when it was made and a randomly selected color, red or white. def random_tree(node_count): # Generates the list of nodes nodes = [] for i in range(node_count): test = rm.randint(1,2) if test == 1: nodes.append(at.Node(str(i),color="white")) else: nodes.append(at.Node(str(i),color="red")) #Creates the various main branches for i in range(node_count): for j in range(i, len(nodes)): test = rm.randint(1,len(nodes)) if test == 1 and nodes[j].parent == None and (not nodes[i] == nodes[j]): nodes[j].parent = nodes[i] #Collects all the main branches into a single tree with the first node being the root for i in range(1, node_count): if nodes[i].parent == None and (not nodes[i] == nodes[0]): nodes[i].parent = nodes[0] return nodes[0]
• Nov 18, 2022 •AustinLeath
def get_ldap_user(member_cn, user, passwrd): ''' Get an LDAP user and return the SAMAccountName ''' #---- Setting up the Connection #account used for binding - Avoid putting these in version control bindDN = str(user) + "@unt.ad.unt.edu" bindPass = passwrd #set some tuneables for the LDAP library. ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW) #ldap.set_option(ldap.OPT_X_TLS_CACERTFILE, CACERTFILE) conn = ldap.initialize('ldaps://unt.ad.unt.edu') conn.protocol_version = 3 conn.set_option(ldap.OPT_REFERRALS, 0) #authenticate the connection so that you can make additional queries try: result = conn.simple_bind_s(bindDN, bindPass) except ldap.INVALID_CREDENTIALS: result = "Invalid credentials for %s" % user sys.exit() #build query in the form of (uid=user) ldap_query = '(|(displayName=' + member_cn + ')(cn='+ member_cn + ')(name=' + member_cn + '))' ldap_info = conn.search_s('DC=unt,DC=ad,DC=unt,DC=edu', ldap.SCOPE_SUBTREE, filterstr=ldap_query) sAMAccountName = str(ldap_info[0][1]['sAMAccountName']).replace("[b'", "").replace("']","") return sAMAccountName
• Jun 26, 2025 •AustinLeath
def format_timestamp(timestamp_epoch): """ Convert epoch timestamp to formatted datetime string without using datetime package. Args: timestamp_epoch (int/float): Unix epoch timestamp (seconds since 1970-01-01 00:00:00 UTC) Returns: str: Formatted datetime string in 'YYYY-MM-DD HH:MM:SS' format """ # Constants for time calculations SECONDS_PER_DAY = 86400 SECONDS_PER_HOUR = 3600 SECONDS_PER_MINUTE = 60 # Handle negative timestamps and convert to integer timestamp = int(timestamp_epoch) # Calculate days since epoch and remaining seconds days_since_epoch = timestamp // SECONDS_PER_DAY remaining_seconds = timestamp % SECONDS_PER_DAY # Calculate hours, minutes, seconds hours = remaining_seconds // SECONDS_PER_HOUR remaining_seconds %= SECONDS_PER_HOUR minutes = remaining_seconds // SECONDS_PER_MINUTE seconds = remaining_seconds % SECONDS_PER_MINUTE # Calculate date (simplified, ignoring leap seconds) year = 1970 days = days_since_epoch while days >= 365: is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) days_in_year = 366 if is_leap else 365 if days >= days_in_year: days -= days_in_year year += 1 # Month lengths (non-leap year for simplicity, adjusted later for leap years) month_lengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): month_lengths[1] = 29 month = 0 while days >= month_lengths[month]: days -= month_lengths[month] month += 1 # Convert to 1-based indexing for month and day month += 1 day = days + 1 # Format the output string return f"{year:04d}-{month:02d}-{day:02d} {hours:02d}:{minutes:02d}:{seconds:02d}" # Example timestamp (Unix epoch seconds) timestamp = 1697054700 formatted_date = format_timestamp(timestamp) print(formatted_date + " UTC") # Output: 2023-10-11 18:45:00
• Nov 19, 2022 •CodeCatch
0 likes • 4 views
# Python program for implementation of Bubble Sort def bubbleSort(arr): n = len(arr) # Traverse through all array elements for i in range(n-1): # range(n) also work but outer loop will repeat one time more than needed. # Last i elements are already in place for j in range(0, n-i-1): # traverse the array from 0 to n-i-1 # Swap if the element found is greater # than the next element if arr[j] > arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j] # Driver code to test above arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print ("Sorted array is:") for i in range(len(arr)): print ("%d" %arr[i]),
0 likes • 6 views
mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':0} # How to sort a dict by value Python 3> sort = {key:value for key, value in sorted(mydict.items(), key=lambda kv: (kv[1], kv[0]))} print(sort) # How to sort a dict by key Python 3> sort = {key:mydict[key] for key in sorted(mydict.keys())} print(sort)
• Jul 24, 2024 •AustinLeath
0 likes • 3 views
from statistics import median, mean, mode def print_stats(array): print(array) print("median =", median(array)) print("mean =", mean(array)) print("mode =", mode(array)) print() print_stats([1, 2, 3, 3, 4]) print_stats([1, 2, 3, 3])