<commit_before>
package DateTimeX::Start;

use strict;
use warnings;

use version; our $VERSION = qv('v1.5.0');

use DateTime           qw( );
use DateTime::TimeZone qw( );
use Exporter           qw( import );
use Scalar::Util       qw( );


my @long  = qw( start_of_date start_of_month start_of_year start_of_today );
my @short = qw( date month year today );
our @EXPORT_OK = ( @long, @short );
our %EXPORT_TAGS = (
   'ALL'   => \@EXPORT_OK,
   'long'  => \@long,
   'short' => \@short,
);


sub _start_of_date {
   my ($trunc, $dt, $tz) = @_;

   if (Scalar::Util::blessed($dt)) {
      $tz ||= $dt->time_zone;
      $dt = $dt->clone->set_time_zone('floating')->truncate( to => $trunc )
         if $trunc;<commit_msg>Minor cleanup<commit_after>
package DateTimeX::Start;

use strict;
use warnings;

use version; our $VERSION = qv('v1.5.0');

use DateTime           qw( );
use DateTime::TimeZone qw( );
use Exporter           qw( import );
use Scalar::Util       qw( );


my @long  = qw( start_of_date start_of_month start_of_year start_of_today );
my @short = qw( date month year today );
our @EXPORT_OK = ( @long, @short );
our %EXPORT_TAGS = (
   'ALL'   => \@EXPORT_OK,
   'long'  => \@long,
   'short' => \@short,
);


sub _start_of_date {
   my ($trunc, $dt, $tz) = @_;

   if (Scalar::Util::blessed($dt)) {
      $tz ||= $dt->time_zone;
      $dt = $dt->clone->set_time_zone('floating')->truncate( to => $trunc );
{'fraction_non_alphanumeric': 0.17779339423752635, 'fraction_numerical': 0.004216444132115249, 'mean_word_length': 3.1759530791788855, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 19, 'https://': 0, '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': '4402728', 'n_tokens_mistral': 562, 'n_tokens_neox': 541, 'n_words': 132}