<commit_before>-------------------------------------------------
-- Battery Arc Widget for Awesome Window Manager
-- Shows the battery level of the laptop
-- More details could be found here:
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/batteryarc-widget

-- @author <NAME>
-- @copyright 2019 <NAME>
-------------------------------------------------

local awful = require("awful")
local beautiful = require("beautiful")
local naughty = require("naughty")
local wibox = require("wibox")
local watch = require("awful.widget.watch")

local HOME = os.getenv("HOME")

local widget = {}

local function worker(args)

    local args = args or {}

    local font = args.font or 'Play 6'
    local arc_thickness = args.thickness or 2
    local show_current_level = args.show_current_level or false

    local main_color = args.main_color or beautiful.fg_color
    local low_level_color = args.low_level_color or '#e53935'
    local medium_level_color = args.medium_level_color or '#c0ca33'
    local charging_color = args.charging_color or '#43a047'

    local warning_msg_title = args.warning_msg_title or 'Huston, we have a problem'
    local warning_msg_text = args.warning_msg_text or 'Battery is dying'
    local warning_msg_position = args.warning_msg_position or 'bottom_right'
    local warning_msg_icon = args.warning_msg_icon or HOME .. '/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg'

    local text = wibox.widget {
        id = "txt",
        font = font,
        align = 'center', -- align the text
        valign = 'center',
        widget = wibox.widget.textbox
    }

    local text_with_background = wibox.container.background(text)

    widget = wibox.widget {
        text_with_background,
        max_value = 1,
        rounded_edge = true,
        thickness = arc_thickness,
        start_angle = 4.71238898, -- 2pi*3/4
        forced_height = 18,
        forced_width = 18,
        bg = "#ffffff11",
        paddings = 2,
        widget = wibox.container.arcchart
    }

    local last_battery_check = os.time()

    watch("acpi -i", 10,
            function(widget, stdout)
                local batteryType

                local battery_info = {}
                local capacities = {}
                for s in stdout:gmatch("[^\r\n]+") do
                    local status, charge_str, time = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?.*')
                    if string.match(s, 'rate information') then
                        -- ignore such line
                    elseif status ~= nil then
                        table.insert(battery_info, { status = status, charge = tonumber(charge_str) })
                    else
                        local cap_str = string.match(s, '.+:.+last full capacity (%d+)')
                        table.insert(capacities, tonumber(cap_str))
                    end
                end

                local capacity = 0
                for i, cap in ipairs(capacities) do
                    capacity = capacity + cap
                end

                local charge = 0
                local status
                for i, batt in ipairs(battery_info) do
                    if batt.charge >= charge then
                        -- use most charged battery status. This is arbitrary, and maybe another metric should be used
                        status = batt.status
                    end

                    charge = charge + batt.charge * capacities[i]
                end

                local charge_percentage
                if capacity > 5 then<commit_msg>Remove extra branch that broke when "rate information unavailable"<commit_after>-------------------------------------------------
-- Battery Arc Widget for Awesome Window Manager
-- Shows the battery level of the laptop
-- More details could be found here:
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/batteryarc-widget

-- @author <NAME>
-- @copyright 2019 <NAME>
-------------------------------------------------

local awful = require("awful")
local beautiful = require("beautiful")
local naughty = require("naughty")
local wibox = require("wibox")
local watch = require("awful.widget.watch")

local HOME = os.getenv("HOME")

local widget = {}

local function worker(args)

    local args = args or {}

    local font = args.font or 'Play 6'
    local arc_thickness = args.thickness or 2
    local show_current_level = args.show_current_level or false

    local main_color = args.main_color or beautiful.fg_color
    local low_level_color = args.low_level_color or '#e53935'
    local medium_level_color = args.medium_level_color or '#c0ca33'
    local charging_color = args.charging_color or '#43a047'

    local warning_msg_title = args.warning_msg_title or 'Huston, we have a problem'
    local warning_msg_text = args.warning_msg_text or 'Battery is dying'
    local warning_msg_position = args.warning_msg_position or 'bottom_right'
    local warning_msg_icon = args.warning_msg_icon or HOME .. '/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg'

    local text = wibox.widget {
        id = "txt",
        font = font,
        align = 'center', -- align the text
        valign = 'center',
        widget = wibox.widget.textbox
    }

    local text_with_background = wibox.container.background(text)

    widget = wibox.widget {
        text_with_background,
        max_value = 1,
        rounded_edge = true,
        thickness = arc_thickness,
        start_angle = 4.71238898, -- 2pi*3/4
        forced_height = 18,
        forced_width = 18,
        bg = "#ffffff11",
        paddings = 2,
        widget = wibox.container.arcchart
    }

    local last_battery_check = os.time()

    watch("acpi -i", 10,
            function(widget, stdout)
                local batteryType

                local battery_info = {}
                local capacities = {}
                for s in stdout:gmatch("[^\r\n]+") do
                    local status, charge_str, time = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?(.*)')
                    if status ~= nil then
                        table.insert(battery_info, { status = status, charge = tonumber(charge_str) })
                    else
                        local cap_str = string.match(s, '.+:.+last full capacity (%d+)')
                        table.insert(capacities, tonumber(cap_str))
                    end
                end

                local capacity = 0
                for i, cap in ipairs(capacities) do
                    capacity = capacity + cap
                end

                local charge = 0
                local status
                for i, batt in ipairs(battery_info) do
                    if batt.charge >= charge then
                        -- use most charged battery status. This is arbitrary, and maybe another metric should be used
                        status = batt.status
                    end

                    charge = charge + batt.charge * capacities[i]
                end

                local charge_percentage
                if capacity > 5 then
{'fraction_non_alphanumeric': 0.11724819889814946, 'fraction_numerical': 0.012431134341008617, 'mean_word_length': 1.7645450995704803, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 11, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '499592', 'n_tokens_mistral': 2057, 'n_tokens_neox': 1880, 'n_words': 539}