tor-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
August 2014
- 21 participants
- 1599 discussions

17 Aug '14
commit 117347214679b498ad3a6c62c91ed33809333041
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Aug 15 12:08:10 2014 +0200
Move DateTimeHelper to docs package.
Implements #12866 (finally).
---
.../torproject/onionoo/docs/BandwidthStatus.java | 1 -
.../onionoo/docs/ClientsGraphHistory.java | 2 -
.../torproject/onionoo/docs/ClientsHistory.java | 2 -
.../org/torproject/onionoo/docs/ClientsStatus.java | 1 -
.../torproject/onionoo/docs/DateTimeHelper.java | 93 ++++++++++++++++++++
.../torproject/onionoo/docs/DetailsDocument.java | 1 -
.../org/torproject/onionoo/docs/DetailsStatus.java | 1 -
.../org/torproject/onionoo/docs/GraphHistory.java | 2 -
.../org/torproject/onionoo/docs/NodeStatus.java | 1 -
.../torproject/onionoo/docs/SummaryDocument.java | 1 -
.../org/torproject/onionoo/docs/UptimeHistory.java | 1 -
.../org/torproject/onionoo/docs/UptimeStatus.java | 2 -
.../org/torproject/onionoo/docs/WeightsStatus.java | 1 -
.../onionoo/updater/ClientsStatusUpdater.java | 2 +-
.../onionoo/updater/NodeDetailsStatusUpdater.java | 2 +-
.../onionoo/updater/UptimeStatusUpdater.java | 2 +-
.../torproject/onionoo/util/DateTimeHelper.java | 93 --------------------
.../onionoo/writer/BandwidthDocumentWriter.java | 2 +-
.../onionoo/writer/ClientsDocumentWriter.java | 2 +-
.../onionoo/writer/DetailsDocumentWriter.java | 2 +-
.../onionoo/writer/SummaryDocumentWriter.java | 2 +-
.../onionoo/writer/UptimeDocumentWriter.java | 2 +-
.../onionoo/writer/WeightsDocumentWriter.java | 2 +-
.../torproject/onionoo/ResourceServletTest.java | 2 +-
.../onionoo/UptimeDocumentWriterTest.java | 2 +-
.../org/torproject/onionoo/UptimeStatusTest.java | 2 +-
.../onionoo/UptimeStatusUpdaterTest.java | 2 +-
27 files changed, 106 insertions(+), 122 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java b/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
index c01a242..3a0d6ba 100644
--- a/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
@@ -8,7 +8,6 @@ import java.util.SortedMap;
import java.util.TreeMap;
import org.torproject.descriptor.BandwidthHistory;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.TimeFactory;
public class BandwidthStatus extends Document {
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
index 00d11a0..e679078 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
@@ -6,8 +6,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.SortedMap;
-import org.torproject.onionoo.util.DateTimeHelper;
-
public class ClientsGraphHistory {
private String first;
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
index 446dd10..35a063a 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
@@ -6,8 +6,6 @@ import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
-import org.torproject.onionoo.util.DateTimeHelper;
-
public class ClientsHistory implements Comparable<ClientsHistory> {
private long startMillis;
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java b/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
index 2e7e2ee..7257faa 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
@@ -6,7 +6,6 @@ import java.util.Scanner;
import java.util.SortedSet;
import java.util.TreeSet;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.TimeFactory;
public class ClientsStatus extends Document {
diff --git a/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java b/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java
new file mode 100644
index 0000000..78aa78f
--- /dev/null
+++ b/src/main/java/org/torproject/onionoo/docs/DateTimeHelper.java
@@ -0,0 +1,93 @@
+/* Copyright 2014 The Tor Project
+ * See LICENSE for licensing information */
+package org.torproject.onionoo.docs;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TimeZone;
+
+public class DateTimeHelper {
+
+ private DateTimeHelper() {
+ }
+
+ public static final long ONE_SECOND = 1000L,
+ TEN_SECONDS = 10L * ONE_SECOND,
+ ONE_MINUTE = 60L * ONE_SECOND,
+ FIVE_MINUTES = 5L * ONE_MINUTE,
+ FIFTEEN_MINUTES = 15L * ONE_MINUTE,
+ FOURTY_FIVE_MINUTES = 45L * ONE_MINUTE,
+ ONE_HOUR = 60L * ONE_MINUTE,
+ FOUR_HOURS = 4L * ONE_HOUR,
+ SIX_HOURS = 6L * ONE_HOUR,
+ TWELVE_HOURS = 12L * ONE_HOUR,
+ ONE_DAY = 24L * ONE_HOUR,
+ TWO_DAYS = 2L * ONE_DAY,
+ THREE_DAYS = 3L * ONE_DAY,
+ ONE_WEEK = 7L * ONE_DAY,
+ TEN_DAYS = 10L * ONE_DAY,
+ ROUGHLY_ONE_MONTH = 31L * ONE_DAY,
+ ROUGHLY_THREE_MONTHS = 92L * ONE_DAY,
+ ROUGHLY_ONE_YEAR = 366L * ONE_DAY,
+ ROUGHLY_FIVE_YEARS = 5L * ROUGHLY_ONE_YEAR;
+
+ public static final String ISO_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+ public static final String ISO_DATETIME_TAB_FORMAT =
+ "yyyy-MM-dd\tHH:mm:ss";
+
+ public static final String ISO_YEARMONTH_FORMAT = "yyyy-MM";
+
+ public static final String DATEHOUR_NOSPACE_FORMAT = "yyyy-MM-dd-HH";
+
+ private static ThreadLocal<Map<String, DateFormat>> dateFormats =
+ new ThreadLocal<Map<String, DateFormat>> () {
+ public Map<String, DateFormat> get() {
+ return super.get();
+ }
+ protected Map<String, DateFormat> initialValue() {
+ return new HashMap<String, DateFormat>();
+ }
+ public void remove() {
+ super.remove();
+ }
+ public void set(Map<String, DateFormat> value) {
+ super.set(value);
+ }
+ };
+
+ private static DateFormat getDateFormat(String format) {
+ Map<String, DateFormat> threadDateFormats = dateFormats.get();
+ if (!threadDateFormats.containsKey(format)) {
+ DateFormat dateFormat = new SimpleDateFormat(format);
+ dateFormat.setLenient(false);
+ dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
+ threadDateFormats.put(format, dateFormat);
+ }
+ return threadDateFormats.get(format);
+ }
+
+ public static String format(long millis, String format) {
+ return getDateFormat(format).format(millis);
+ }
+
+ public static String format(long millis) {
+ return format(millis, ISO_DATETIME_FORMAT);
+ }
+
+ public static long parse(String string, String format) {
+ try {
+ return getDateFormat(format).parse(string).getTime();
+ } catch (ParseException e) {
+ return -1L;
+ }
+ }
+
+ public static long parse(String string) {
+ return parse(string, ISO_DATETIME_FORMAT);
+ }
+}
+
diff --git a/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java b/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
index 9196153..bda9865 100644
--- a/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
@@ -6,7 +6,6 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
-import org.torproject.onionoo.util.DateTimeHelper;
public class DetailsDocument extends Document {
diff --git a/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java b/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
index 77ab269..6fe0d80 100644
--- a/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
@@ -6,7 +6,6 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
-import org.torproject.onionoo.util.DateTimeHelper;
public class DetailsStatus extends Document {
diff --git a/src/main/java/org/torproject/onionoo/docs/GraphHistory.java b/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
index 10941db..115f9f9 100644
--- a/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
@@ -4,8 +4,6 @@ package org.torproject.onionoo.docs;
import java.util.List;
-import org.torproject.onionoo.util.DateTimeHelper;
-
public class GraphHistory {
private String first;
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index 41292fd..fa31968 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -15,7 +15,6 @@ import java.util.TreeSet;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
-import org.torproject.onionoo.util.DateTimeHelper;
/* Store search data of a single relay that was running in the past seven
* days. */
diff --git a/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java b/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
index 0c71ae2..8645950 100644
--- a/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
@@ -13,7 +13,6 @@ import java.util.regex.Pattern;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
-import org.torproject.onionoo.util.DateTimeHelper;
public class SummaryDocument extends Document {
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
index f0a966b..d2655d5 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
@@ -1,6 +1,5 @@
package org.torproject.onionoo.docs;
-import org.torproject.onionoo.util.DateTimeHelper;
public class UptimeHistory
implements Comparable<UptimeHistory> {
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java b/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
index c712172..3bc268a 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
@@ -6,8 +6,6 @@ import java.util.Scanner;
import java.util.SortedSet;
import java.util.TreeSet;
-import org.torproject.onionoo.util.DateTimeHelper;
-
public class UptimeStatus extends Document {
private transient boolean isDirty = false;
diff --git a/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java b/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
index ccc818a..e49dfb1 100644
--- a/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
@@ -7,7 +7,6 @@ import java.util.Scanner;
import java.util.SortedMap;
import java.util.TreeMap;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.TimeFactory;
public class WeightsStatus extends Document {
diff --git a/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
index a8797ba..4c21032 100644
--- a/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
@@ -12,9 +12,9 @@ import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.ExtraInfoDescriptor;
import org.torproject.onionoo.docs.ClientsHistory;
import org.torproject.onionoo.docs.ClientsStatus;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
/*
diff --git a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
index 827c890..8d5ab0b 100644
--- a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
@@ -21,11 +21,11 @@ import org.torproject.descriptor.ExitListEntry;
import org.torproject.descriptor.NetworkStatusEntry;
import org.torproject.descriptor.RelayNetworkStatusConsensus;
import org.torproject.descriptor.ServerDescriptor;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DetailsStatus;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.NodeStatus;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
index 6a7a2b1..4bbdcf1 100644
--- a/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
@@ -12,10 +12,10 @@ import org.torproject.descriptor.BridgeNetworkStatus;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.NetworkStatusEntry;
import org.torproject.descriptor.RelayNetworkStatusConsensus;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.UptimeStatus;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
public class UptimeStatusUpdater implements DescriptorListener,
diff --git a/src/main/java/org/torproject/onionoo/util/DateTimeHelper.java b/src/main/java/org/torproject/onionoo/util/DateTimeHelper.java
deleted file mode 100644
index b350b9a..0000000
--- a/src/main/java/org/torproject/onionoo/util/DateTimeHelper.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright 2014 The Tor Project
- * See LICENSE for licensing information */
-package org.torproject.onionoo.util;
-
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TimeZone;
-
-public class DateTimeHelper {
-
- private DateTimeHelper() {
- }
-
- public static final long ONE_SECOND = 1000L,
- TEN_SECONDS = 10L * ONE_SECOND,
- ONE_MINUTE = 60L * ONE_SECOND,
- FIVE_MINUTES = 5L * ONE_MINUTE,
- FIFTEEN_MINUTES = 15L * ONE_MINUTE,
- FOURTY_FIVE_MINUTES = 45L * ONE_MINUTE,
- ONE_HOUR = 60L * ONE_MINUTE,
- FOUR_HOURS = 4L * ONE_HOUR,
- SIX_HOURS = 6L * ONE_HOUR,
- TWELVE_HOURS = 12L * ONE_HOUR,
- ONE_DAY = 24L * ONE_HOUR,
- TWO_DAYS = 2L * ONE_DAY,
- THREE_DAYS = 3L * ONE_DAY,
- ONE_WEEK = 7L * ONE_DAY,
- TEN_DAYS = 10L * ONE_DAY,
- ROUGHLY_ONE_MONTH = 31L * ONE_DAY,
- ROUGHLY_THREE_MONTHS = 92L * ONE_DAY,
- ROUGHLY_ONE_YEAR = 366L * ONE_DAY,
- ROUGHLY_FIVE_YEARS = 5L * ROUGHLY_ONE_YEAR;
-
- public static final String ISO_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
-
- public static final String ISO_DATETIME_TAB_FORMAT =
- "yyyy-MM-dd\tHH:mm:ss";
-
- public static final String ISO_YEARMONTH_FORMAT = "yyyy-MM";
-
- public static final String DATEHOUR_NOSPACE_FORMAT = "yyyy-MM-dd-HH";
-
- private static ThreadLocal<Map<String, DateFormat>> dateFormats =
- new ThreadLocal<Map<String, DateFormat>> () {
- public Map<String, DateFormat> get() {
- return super.get();
- }
- protected Map<String, DateFormat> initialValue() {
- return new HashMap<String, DateFormat>();
- }
- public void remove() {
- super.remove();
- }
- public void set(Map<String, DateFormat> value) {
- super.set(value);
- }
- };
-
- private static DateFormat getDateFormat(String format) {
- Map<String, DateFormat> threadDateFormats = dateFormats.get();
- if (!threadDateFormats.containsKey(format)) {
- DateFormat dateFormat = new SimpleDateFormat(format);
- dateFormat.setLenient(false);
- dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- threadDateFormats.put(format, dateFormat);
- }
- return threadDateFormats.get(format);
- }
-
- public static String format(long millis, String format) {
- return getDateFormat(format).format(millis);
- }
-
- public static String format(long millis) {
- return format(millis, ISO_DATETIME_FORMAT);
- }
-
- public static long parse(String string, String format) {
- try {
- return getDateFormat(format).parse(string).getTime();
- } catch (ParseException e) {
- return -1L;
- }
- }
-
- public static long parse(String string) {
- return parse(string, ISO_DATETIME_FORMAT);
- }
-}
-
diff --git a/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
index 5ce467c..f5d860c 100644
--- a/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
@@ -13,6 +13,7 @@ import java.util.SortedSet;
import org.torproject.onionoo.docs.BandwidthDocument;
import org.torproject.onionoo.docs.BandwidthStatus;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.GraphHistory;
@@ -20,7 +21,6 @@ import org.torproject.onionoo.updater.DescriptorSource;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
import org.torproject.onionoo.updater.FingerprintListener;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
index 6684db7..0541be8 100644
--- a/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
@@ -15,13 +15,13 @@ import org.torproject.onionoo.docs.ClientsDocument;
import org.torproject.onionoo.docs.ClientsGraphHistory;
import org.torproject.onionoo.docs.ClientsHistory;
import org.torproject.onionoo.docs.ClientsStatus;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.updater.DescriptorSource;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
import org.torproject.onionoo.updater.FingerprintListener;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
index 8d69079..bd2a955 100644
--- a/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
@@ -8,6 +8,7 @@ import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DetailsDocument;
import org.torproject.onionoo.docs.DetailsStatus;
import org.torproject.onionoo.docs.DocumentStore;
@@ -17,7 +18,6 @@ import org.torproject.onionoo.updater.DescriptorSource;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
import org.torproject.onionoo.updater.FingerprintListener;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java
index c175533..8d68dea 100644
--- a/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/SummaryDocumentWriter.java
@@ -6,11 +6,11 @@ import java.util.ArrayList;
import java.util.List;
import java.util.SortedSet;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.NodeStatus;
import org.torproject.onionoo.docs.SummaryDocument;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
public class SummaryDocumentWriter implements DocumentWriter {
diff --git a/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
index 71f4d9a..92b434a 100644
--- a/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
@@ -9,6 +9,7 @@ import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.GraphHistory;
@@ -19,7 +20,6 @@ import org.torproject.onionoo.updater.DescriptorSource;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
import org.torproject.onionoo.updater.FingerprintListener;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
index cfb410c..9af9825 100644
--- a/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
@@ -11,6 +11,7 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStore;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.GraphHistory;
@@ -20,7 +21,6 @@ import org.torproject.onionoo.updater.DescriptorSource;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
import org.torproject.onionoo.updater.FingerprintListener;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Logger;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/test/java/org/torproject/onionoo/ResourceServletTest.java b/src/test/java/org/torproject/onionoo/ResourceServletTest.java
index db359e8..cf46e9f 100644
--- a/src/test/java/org/torproject/onionoo/ResourceServletTest.java
+++ b/src/test/java/org/torproject/onionoo/ResourceServletTest.java
@@ -21,6 +21,7 @@ import java.util.TreeSet;
import org.junit.Before;
import org.junit.Test;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.UpdateStatus;
import org.torproject.onionoo.server.HttpServletRequestWrapper;
@@ -28,7 +29,6 @@ import org.torproject.onionoo.server.HttpServletResponseWrapper;
import org.torproject.onionoo.server.NodeIndexer;
import org.torproject.onionoo.server.NodeIndexerFactory;
import org.torproject.onionoo.server.ResourceServlet;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.Time;
import org.torproject.onionoo.util.TimeFactory;
diff --git a/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java b/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java
index c109859..bb87721 100644
--- a/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java
+++ b/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java
@@ -10,13 +10,13 @@ import java.util.List;
import org.junit.Before;
import org.junit.Test;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.GraphHistory;
import org.torproject.onionoo.docs.UptimeDocument;
import org.torproject.onionoo.docs.UptimeStatus;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
-import org.torproject.onionoo.util.DateTimeHelper;
import org.torproject.onionoo.util.TimeFactory;
import org.torproject.onionoo.writer.UptimeDocumentWriter;
diff --git a/src/test/java/org/torproject/onionoo/UptimeStatusTest.java b/src/test/java/org/torproject/onionoo/UptimeStatusTest.java
index f981da3..984a281 100644
--- a/src/test/java/org/torproject/onionoo/UptimeStatusTest.java
+++ b/src/test/java/org/torproject/onionoo/UptimeStatusTest.java
@@ -12,10 +12,10 @@ import java.util.TreeSet;
import org.junit.Before;
import org.junit.Test;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.UptimeHistory;
import org.torproject.onionoo.docs.UptimeStatus;
-import org.torproject.onionoo.util.DateTimeHelper;
public class UptimeStatusTest {
diff --git a/src/test/java/org/torproject/onionoo/UptimeStatusUpdaterTest.java b/src/test/java/org/torproject/onionoo/UptimeStatusUpdaterTest.java
index 3620b7c..d1cd709 100644
--- a/src/test/java/org/torproject/onionoo/UptimeStatusUpdaterTest.java
+++ b/src/test/java/org/torproject/onionoo/UptimeStatusUpdaterTest.java
@@ -6,13 +6,13 @@ import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
+import org.torproject.onionoo.docs.DateTimeHelper;
import org.torproject.onionoo.docs.DocumentStoreFactory;
import org.torproject.onionoo.docs.UptimeHistory;
import org.torproject.onionoo.docs.UptimeStatus;
import org.torproject.onionoo.updater.DescriptorSourceFactory;
import org.torproject.onionoo.updater.DescriptorType;
import org.torproject.onionoo.updater.UptimeStatusUpdater;
-import org.torproject.onionoo.util.DateTimeHelper;
public class UptimeStatusUpdaterTest {
1
0

17 Aug '14
commit c3dc0be6808c2e64eb518cbc3be32dbad53846b6
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Aug 15 10:38:20 2014 +0200
Don't parse bandwidth histories twice.
Bandwidth histories are parsed by metrics-lib, so there's no need to do
that a second time. We can simply use the values provided by metrics-lib.
Removes yet another dependency on DateTimeHelper, which gets us closer to
implementing #12866.
---
.../onionoo/updater/BandwidthStatusUpdater.java | 30 +++++++-------------
1 file changed, 11 insertions(+), 19 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java
index d9d5e14..5c27464 100644
--- a/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/BandwidthStatusUpdater.java
@@ -2,9 +2,11 @@
* See LICENSE for licensing information */
package org.torproject.onionoo.updater;
+import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+import org.torproject.descriptor.BandwidthHistory;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.ExtraInfoDescriptor;
import org.torproject.onionoo.docs.BandwidthStatus;
@@ -54,11 +56,11 @@ public class BandwidthStatusUpdater implements DescriptorListener,
bandwidthStatus = new BandwidthStatus();
}
if (descriptor.getWriteHistory() != null) {
- parseHistoryLine(descriptor.getWriteHistory().getLine(),
+ this.parseHistory(descriptor.getWriteHistory(),
bandwidthStatus.getWriteHistory());
}
if (descriptor.getReadHistory() != null) {
- parseHistoryLine(descriptor.getReadHistory().getLine(),
+ this.parseHistory(descriptor.getReadHistory(),
bandwidthStatus.getReadHistory());
}
this.compressHistory(bandwidthStatus.getWriteHistory());
@@ -66,29 +68,19 @@ public class BandwidthStatusUpdater implements DescriptorListener,
this.documentStore.store(bandwidthStatus, fingerprint);
}
- private void parseHistoryLine(String line,
+ private void parseHistory(BandwidthHistory bandwidthHistory,
SortedMap<Long, long[]> history) {
- String[] parts = line.split(" ");
- if (parts.length < 6) {
- return;
- }
- long endMillis = DateTimeHelper.parse(parts[1] + " " + parts[2]);
- if (endMillis < 0L) {
- System.err.println("Could not parse timestamp in line '" + line
- + "'. Skipping.");
- return;
- }
- long intervalMillis = Long.parseLong(parts[3].substring(1))
+ long intervalMillis = bandwidthHistory.getIntervalLength()
* DateTimeHelper.ONE_SECOND;
- String[] values = parts[5].split(",");
- for (int i = values.length - 1; i >= 0; i--) {
- long bandwidthValue = Long.parseLong(values[i]);
- long startMillis = endMillis - intervalMillis;
+ for (Map.Entry<Long, Long> e :
+ bandwidthHistory.getBandwidthValues().entrySet()) {
+ long endMillis = e.getKey(),
+ startMillis = endMillis - intervalMillis;
+ long bandwidthValue = e.getValue();
/* TODO Should we first check whether an interval is already
* contained in history? */
history.put(startMillis, new long[] { startMillis, endMillis,
bandwidthValue });
- endMillis -= intervalMillis;
}
}
1
0

[onionoo/master] Don't process server descriptors more than once.
by karsten@torproject.org 17 Aug '14
by karsten@torproject.org 17 Aug '14
17 Aug '14
commit 65bbe71597515841f76895f550b19ac066ac9818
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Aug 15 09:47:31 2014 +0200
Don't process server descriptors more than once.
---
.../org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
index 09eef9b..979c49b 100644
--- a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
@@ -111,7 +111,7 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
detailsStatus = new DetailsStatus();
} else if (detailsStatus.getDescPublished() != null &&
publishedDateTime.compareTo(
- detailsStatus.getDescPublished()) < 0) {
+ detailsStatus.getDescPublished()) <= 0) {
return;
}
String lastRestartedString = DateTimeHelper.format(
@@ -233,7 +233,7 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
detailsStatus = new DetailsStatus();
} else if (detailsStatus.getDescPublished() != null &&
publishedDateTime.compareTo(
- detailsStatus.getDescPublished()) < 0) {
+ detailsStatus.getDescPublished()) <= 0) {
return;
}
String lastRestartedString = DateTimeHelper.format(
1
0

[onionoo/master] Avoid passing around formatted timestamps if feasible.
by karsten@torproject.org 17 Aug '14
by karsten@torproject.org 17 Aug '14
17 Aug '14
commit 29109e2b8136234ba36b3c5f6b1e4418e5cc794a
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Aug 15 10:07:31 2014 +0200
Avoid passing around formatted timestamps if feasible.
Implements part of #12866.
---
.../onionoo/docs/ClientsGraphHistory.java | 18 ++++++-----
.../torproject/onionoo/docs/DetailsDocument.java | 34 +++++++++++---------
.../org/torproject/onionoo/docs/DetailsStatus.java | 17 +++++-----
.../org/torproject/onionoo/docs/GraphHistory.java | 18 ++++++-----
.../org/torproject/onionoo/server/NodeIndex.java | 11 ++++---
.../org/torproject/onionoo/server/NodeIndexer.java | 6 ++--
.../onionoo/updater/NodeDetailsStatusUpdater.java | 32 +++++++-----------
.../onionoo/writer/BandwidthDocumentWriter.java | 4 +--
.../onionoo/writer/ClientsDocumentWriter.java | 4 +--
.../onionoo/writer/DetailsDocumentWriter.java | 14 +++-----
.../onionoo/writer/UptimeDocumentWriter.java | 4 +--
.../onionoo/writer/WeightsDocumentWriter.java | 4 +--
.../onionoo/UptimeDocumentWriterTest.java | 8 ++---
13 files changed, 85 insertions(+), 89 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
index e1db663..00d11a0 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsGraphHistory.java
@@ -6,22 +6,24 @@ import java.util.ArrayList;
import java.util.List;
import java.util.SortedMap;
+import org.torproject.onionoo.util.DateTimeHelper;
+
public class ClientsGraphHistory {
private String first;
- public void setFirst(String first) {
- this.first = first;
+ public void setFirst(long first) {
+ this.first = DateTimeHelper.format(first);
}
- public String getFirst() {
- return this.first;
+ public long getFirst() {
+ return DateTimeHelper.parse(this.first);
}
private String last;
- public void setLast(String last) {
- this.last = last;
+ public void setLast(long last) {
+ this.last = DateTimeHelper.format(last);
}
- public String getLast() {
- return this.last;
+ public long getLast() {
+ return DateTimeHelper.parse(this.last);
}
private Integer interval;
diff --git a/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java b/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
index 142b591..9196153 100644
--- a/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/DetailsDocument.java
@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
+import org.torproject.onionoo.util.DateTimeHelper;
public class DetailsDocument extends Document {
@@ -75,28 +76,29 @@ public class DetailsDocument extends Document {
}
private String last_seen;
- public void setLastSeen(String lastSeen) {
- this.last_seen = lastSeen;
+ public void setLastSeen(long lastSeen) {
+ this.last_seen = DateTimeHelper.format(lastSeen);
}
- public String getLastSeen() {
- return this.last_seen;
+ public long getLastSeen() {
+ return DateTimeHelper.parse(this.last_seen);
}
private String last_changed_address_or_port;
public void setLastChangedAddressOrPort(
- String lastChangedAddressOrPort) {
- this.last_changed_address_or_port = lastChangedAddressOrPort;
+ long lastChangedAddressOrPort) {
+ this.last_changed_address_or_port = DateTimeHelper.format(
+ lastChangedAddressOrPort);
}
- public String getLastChangedAddressOrPort() {
- return this.last_changed_address_or_port;
+ public long getLastChangedAddressOrPort() {
+ return DateTimeHelper.parse(this.last_changed_address_or_port);
}
private String first_seen;
- public void setFirstSeen(String firstSeen) {
- this.first_seen = firstSeen;
+ public void setFirstSeen(long firstSeen) {
+ this.first_seen = DateTimeHelper.format(firstSeen);
}
- public String getFirstSeen() {
- return this.first_seen;
+ public long getFirstSeen() {
+ return DateTimeHelper.parse(this.first_seen);
}
private Boolean running;
@@ -196,11 +198,11 @@ public class DetailsDocument extends Document {
}
private String last_restarted;
- public void setLastRestarted(String lastRestarted) {
- this.last_restarted = lastRestarted;
+ public void setLastRestarted(long lastRestarted) {
+ this.last_restarted = DateTimeHelper.format(lastRestarted);
}
- public String getLastRestarted() {
- return this.last_restarted;
+ public long getLastRestarted() {
+ return DateTimeHelper.parse(this.last_restarted);
}
private Integer bandwidth_rate;
diff --git a/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java b/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
index a19b4b9..77ab269 100644
--- a/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/DetailsStatus.java
@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
+import org.torproject.onionoo.util.DateTimeHelper;
public class DetailsStatus extends Document {
@@ -27,19 +28,19 @@ public class DetailsStatus extends Document {
}
private String desc_published;
- public void setDescPublished(String descPublished) {
- this.desc_published = descPublished;
+ public void setDescPublished(long descPublished) {
+ this.desc_published = DateTimeHelper.format(descPublished);
}
- public String getDescPublished() {
- return this.desc_published;
+ public long getDescPublished() {
+ return DateTimeHelper.parse(this.desc_published);
}
private String last_restarted;
- public void setLastRestarted(String lastRestarted) {
- this.last_restarted = lastRestarted;
+ public void setLastRestarted(long lastRestarted) {
+ this.last_restarted = DateTimeHelper.format(lastRestarted);
}
- public String getLastRestarted() {
- return this.last_restarted;
+ public long getLastRestarted() {
+ return DateTimeHelper.parse(this.last_restarted);
}
private Integer bandwidth_rate;
diff --git a/src/main/java/org/torproject/onionoo/docs/GraphHistory.java b/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
index 19ace31..10941db 100644
--- a/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/GraphHistory.java
@@ -4,22 +4,24 @@ package org.torproject.onionoo.docs;
import java.util.List;
+import org.torproject.onionoo.util.DateTimeHelper;
+
public class GraphHistory {
private String first;
- public void setFirst(String first) {
- this.first = first;
+ public void setFirst(long first) {
+ this.first = DateTimeHelper.format(first);
}
- public String getFirst() {
- return this.first;
+ public long getFirst() {
+ return DateTimeHelper.parse(this.first);
}
private String last;
- public void setLast(String last) {
- this.last = last;
+ public void setLast(long last) {
+ this.last = DateTimeHelper.format(last);
}
- public String getLast() {
- return this.last;
+ public long getLast() {
+ return DateTimeHelper.parse(this.last);
}
private Integer interval;
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndex.java b/src/main/java/org/torproject/onionoo/server/NodeIndex.java
index 7b95d2e..f2859a5 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndex.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndex.java
@@ -6,20 +6,23 @@ import java.util.Set;
import java.util.SortedMap;
import org.torproject.onionoo.docs.SummaryDocument;
+import org.torproject.onionoo.util.DateTimeHelper;
class NodeIndex {
private String relaysPublishedString;
- public void setRelaysPublishedString(String relaysPublishedString) {
- this.relaysPublishedString = relaysPublishedString;
+ public void setRelaysPublishedMillis(long relaysPublishedMillis) {
+ this.relaysPublishedString =
+ DateTimeHelper.format(relaysPublishedMillis);
}
public String getRelaysPublishedString() {
return relaysPublishedString;
}
private String bridgesPublishedString;
- public void setBridgesPublishedString(String bridgesPublishedString) {
- this.bridgesPublishedString = bridgesPublishedString;
+ public void setBridgesPublishedMillis(long bridgesPublishedMillis) {
+ this.bridgesPublishedString =
+ DateTimeHelper.format(bridgesPublishedMillis);
}
public String getBridgesPublishedString() {
return bridgesPublishedString;
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
index f72d322..1cbd75e 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
@@ -286,10 +286,8 @@ public class NodeIndexer implements ServletContextListener, Runnable {
newNodeIndex.setRelaysByLastSeenDays(newRelaysByLastSeenDays);
newNodeIndex.setBridgesByFirstSeenDays(newBridgesByFirstSeenDays);
newNodeIndex.setBridgesByLastSeenDays(newBridgesByLastSeenDays);
- newNodeIndex.setRelaysPublishedString(DateTimeHelper.format(
- relaysLastValidAfterMillis));
- newNodeIndex.setBridgesPublishedString(DateTimeHelper.format(
- bridgesLastPublishedMillis));
+ newNodeIndex.setRelaysPublishedMillis(relaysLastValidAfterMillis);
+ newNodeIndex.setBridgesPublishedMillis(bridgesLastPublishedMillis);
synchronized (this) {
this.lastIndexed = updateStatusMillis;
this.latestNodeIndex = newNodeIndex;
diff --git a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
index 979c49b..827c890 100644
--- a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
@@ -105,25 +105,21 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
String fingerprint = descriptor.getFingerprint();
DetailsStatus detailsStatus = this.documentStore.retrieve(
DetailsStatus.class, true, fingerprint);
- String publishedDateTime =
- DateTimeHelper.format(descriptor.getPublishedMillis());
if (detailsStatus == null) {
detailsStatus = new DetailsStatus();
- } else if (detailsStatus.getDescPublished() != null &&
- publishedDateTime.compareTo(
- detailsStatus.getDescPublished()) <= 0) {
+ } else if (descriptor.getPublishedMillis() >
+ detailsStatus.getDescPublished()) {
return;
}
- String lastRestartedString = DateTimeHelper.format(
- descriptor.getPublishedMillis() - descriptor.getUptime()
- * DateTimeHelper.ONE_SECOND);
+ long lastRestartedMillis = descriptor.getPublishedMillis()
+ - descriptor.getUptime() * DateTimeHelper.ONE_SECOND;
int bandwidthRate = descriptor.getBandwidthRate();
int bandwidthBurst = descriptor.getBandwidthBurst();
int observedBandwidth = descriptor.getBandwidthObserved();
int advertisedBandwidth = Math.min(bandwidthRate,
Math.min(bandwidthBurst, observedBandwidth));
- detailsStatus.setDescPublished(publishedDateTime);
- detailsStatus.setLastRestarted(lastRestartedString);
+ detailsStatus.setDescPublished(descriptor.getPublishedMillis());
+ detailsStatus.setLastRestarted(lastRestartedMillis);
detailsStatus.setBandwidthRate(bandwidthRate);
detailsStatus.setBandwidthBurst(bandwidthBurst);
detailsStatus.setObservedBandwidth(observedBandwidth);
@@ -227,23 +223,19 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
String fingerprint = descriptor.getFingerprint();
DetailsStatus detailsStatus = this.documentStore.retrieve(
DetailsStatus.class, true, fingerprint);
- String publishedDateTime =
- DateTimeHelper.format(descriptor.getPublishedMillis());
if (detailsStatus == null) {
detailsStatus = new DetailsStatus();
- } else if (detailsStatus.getDescPublished() != null &&
- publishedDateTime.compareTo(
- detailsStatus.getDescPublished()) <= 0) {
+ } else if (detailsStatus.getDescPublished() >
+ descriptor.getPublishedMillis()) {
return;
}
- String lastRestartedString = DateTimeHelper.format(
- descriptor.getPublishedMillis() - descriptor.getUptime()
- * DateTimeHelper.ONE_SECOND);
+ long lastRestartedMillis = descriptor.getPublishedMillis()
+ - descriptor.getUptime() * DateTimeHelper.ONE_SECOND;
int advertisedBandwidth = Math.min(descriptor.getBandwidthRate(),
Math.min(descriptor.getBandwidthBurst(),
descriptor.getBandwidthObserved()));
- detailsStatus.setDescPublished(publishedDateTime);
- detailsStatus.setLastRestarted(lastRestartedString);
+ detailsStatus.setDescPublished(descriptor.getPublishedMillis());
+ detailsStatus.setLastRestarted(lastRestartedMillis);
detailsStatus.setAdvertisedBandwidth(advertisedBandwidth);
detailsStatus.setPlatform(descriptor.getPlatform());
this.documentStore.store(detailsStatus, fingerprint);
diff --git a/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
index c5ae22e..5ce467c 100644
--- a/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/BandwidthDocumentWriter.java
@@ -168,8 +168,8 @@ public class BandwidthDocumentWriter implements FingerprintListener,
double factor = ((double) maxValue) / 999.0;
int count = lastNonNullIndex - firstNonNullIndex + 1;
GraphHistory graphHistory = new GraphHistory();
- graphHistory.setFirst(DateTimeHelper.format(firstDataPointMillis));
- graphHistory.setLast(DateTimeHelper.format(lastDataPointMillis));
+ graphHistory.setFirst(firstDataPointMillis);
+ graphHistory.setLast(lastDataPointMillis);
graphHistory.setInterval((int) (dataPointInterval
/ DateTimeHelper.ONE_SECOND));
graphHistory.setFactor(factor);
diff --git a/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
index ae64f86..6684db7 100644
--- a/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/ClientsDocumentWriter.java
@@ -227,8 +227,8 @@ public class ClientsDocumentWriter implements FingerprintListener,
double factor = ((double) maxValue) / 999.0;
int count = lastNonNullIndex - firstNonNullIndex + 1;
ClientsGraphHistory graphHistory = new ClientsGraphHistory();
- graphHistory.setFirst(DateTimeHelper.format(firstDataPointMillis));
- graphHistory.setLast(DateTimeHelper.format(lastDataPointMillis));
+ graphHistory.setFirst(firstDataPointMillis);
+ graphHistory.setLast(lastDataPointMillis);
graphHistory.setInterval((int) (dataPointInterval
/ DateTimeHelper.ONE_SECOND));
graphHistory.setFactor(factor);
diff --git a/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
index 8e2cb9f..8d69079 100644
--- a/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/DetailsDocumentWriter.java
@@ -92,12 +92,10 @@ public class DetailsDocumentWriter implements FingerprintListener,
detailsDocument.setDirAddress(entry.getAddress() + ":"
+ entry.getDirPort());
}
- detailsDocument.setLastSeen(DateTimeHelper.format(
- entry.getLastSeenMillis()));
- detailsDocument.setFirstSeen(DateTimeHelper.format(
- entry.getFirstSeenMillis()));
+ detailsDocument.setLastSeen(entry.getLastSeenMillis());
+ detailsDocument.setFirstSeen(entry.getFirstSeenMillis());
detailsDocument.setLastChangedAddressOrPort(
- DateTimeHelper.format(entry.getLastChangedOrAddress()));
+ entry.getLastChangedOrAddress());
detailsDocument.setRunning(entry.getRunning());
if (!entry.getRelayFlags().isEmpty()) {
detailsDocument.setFlags(new ArrayList<String>(
@@ -202,10 +200,8 @@ public class DetailsDocumentWriter implements FingerprintListener,
orAddresses.add(orAddress.toLowerCase());
}
detailsDocument.setOrAddresses(orAddresses);
- detailsDocument.setLastSeen(DateTimeHelper.format(
- entry.getLastSeenMillis()));
- detailsDocument.setFirstSeen(DateTimeHelper.format(
- entry.getFirstSeenMillis()));
+ detailsDocument.setLastSeen(entry.getLastSeenMillis());
+ detailsDocument.setFirstSeen(entry.getFirstSeenMillis());
detailsDocument.setRunning(entry.getRunning());
detailsDocument.setFlags(new ArrayList<String>(
entry.getRelayFlags()));
diff --git a/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
index f58ec93..71f4d9a 100644
--- a/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/UptimeDocumentWriter.java
@@ -267,8 +267,8 @@ public class UptimeDocumentWriter implements FingerprintListener,
+ (lastNonNullIndex - firstNonNullIndex) * dataPointInterval;
int count = lastNonNullIndex - firstNonNullIndex + 1;
GraphHistory graphHistory = new GraphHistory();
- graphHistory.setFirst(DateTimeHelper.format(firstDataPointMillis));
- graphHistory.setLast(DateTimeHelper.format(lastDataPointMillis));
+ graphHistory.setFirst(firstDataPointMillis);
+ graphHistory.setLast(lastDataPointMillis);
graphHistory.setInterval((int) (dataPointInterval
/ DateTimeHelper.ONE_SECOND));
graphHistory.setFactor(1.0 / 999.0);
diff --git a/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
index e0601c1..cfb410c 100644
--- a/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/WeightsDocumentWriter.java
@@ -199,8 +199,8 @@ public class WeightsDocumentWriter implements FingerprintListener,
double factor = ((double) maxValue) / 999.0;
int count = lastNonNullIndex - firstNonNullIndex + 1;
GraphHistory graphHistory = new GraphHistory();
- graphHistory.setFirst(DateTimeHelper.format(firstDataPointMillis));
- graphHistory.setLast(DateTimeHelper.format(lastDataPointMillis));
+ graphHistory.setFirst(firstDataPointMillis);
+ graphHistory.setLast(lastDataPointMillis);
graphHistory.setInterval((int) (dataPointInterval
/ DateTimeHelper.ONE_SECOND));
graphHistory.setFactor(factor);
diff --git a/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java b/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java
index f430c0b..afae0e8 100644
--- a/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java
+++ b/src/test/java/org/torproject/onionoo/UptimeDocumentWriterTest.java
@@ -97,10 +97,10 @@ public class UptimeDocumentWriterTest {
assertTrue("Should contain a graph for " + graphName + ".",
document.getUptime().containsKey(graphName));
GraphHistory history = document.getUptime().get(graphName);
- assertEquals("First data point should be " + first + ".", first,
- history.getFirst());
- assertEquals("Last data point should be " + last + ".", last,
- history.getLast());
+ assertEquals("First data point should be " + first + ".",
+ DateTimeHelper.parse(first), history.getFirst());
+ assertEquals("Last data point should be " + last + ".",
+ DateTimeHelper.parse(last), history.getLast());
assertEquals("Interval should be " + interval + " seconds.", interval,
(int) history.getInterval());
assertEquals("Factor should be 1.0 / 999.0.", 1.0 / 999.0,
1
0

[stem/master] Ignoring E131 (continuation line unaligned for hanging indent)
by atagar@torproject.org 17 Aug '14
by atagar@torproject.org 17 Aug '14
17 Aug '14
commit 38e4b77307b972d5315403923827a790731b8d97
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Aug 16 17:17:23 2014 -0700
Ignoring E131 (continuation line unaligned for hanging indent)
This check is based on four space indentations so skipping it.
---
test/settings.cfg | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/settings.cfg b/test/settings.cfg
index 3dbdde5..6ce27b8 100644
--- a/test/settings.cfg
+++ b/test/settings.cfg
@@ -116,7 +116,7 @@ target.torrc RUN_PTRACE => PORT, PTRACE
# Ahhh, indentation. The holy war that'll never die. Sticking with two
# space indentations since it leads to shorter lines.
#
-# * E127 continuation line over-indented for visual indent
+# * E127 and E131 continuation line over-indented for visual indent
#
# Pep8 only works with this one if we have four space indents (its
# detection is based on multiples of four).
@@ -126,6 +126,7 @@ pep8.ignore E121
pep8.ignore E501
pep8.ignore E251
pep8.ignore E127
+pep8.ignore E131
# False positives from pyflakes. These are mappings between the path and the
# issue.
1
0

[stem/master] Fixing E265 (block comment should start with '# ')
by atagar@torproject.org 17 Aug '14
by atagar@torproject.org 17 Aug '14
17 Aug '14
commit 27d5f2f2fa81e4b87d6962734503d274c7fc960e
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Aug 16 16:43:46 2014 -0700
Fixing E265 (block comment should start with '# ')
Couple instances where we don't have whitespace after '#'.
---
stem/descriptor/server_descriptor.py | 18 +++++++++---------
stem/util/log.py | 3 ++-
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index 1b34c58..c5d24d3 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -756,15 +756,15 @@ class RelayDescriptor(ServerDescriptor):
decrypted_bytes = long_to_bytes(decrypted_int, blocksize)
############################################################################
- ## The decrypted bytes should have a structure exactly along these lines.
- ## 1 byte - [null '\x00']
- ## 1 byte - [block type identifier '\x01'] - Should always be 1
- ## N bytes - [padding '\xFF' ]
- ## 1 byte - [separator '\x00' ]
- ## M bytes - [message]
- ## Total - 128 bytes
- ## More info here http://www.ietf.org/rfc/rfc2313.txt
- ## esp the Notes in section 8.1
+ # The decrypted bytes should have a structure exactly along these lines.
+ # 1 byte - [null '\x00']
+ # 1 byte - [block type identifier '\x01'] - Should always be 1
+ # N bytes - [padding '\xFF' ]
+ # 1 byte - [separator '\x00' ]
+ # M bytes - [message]
+ # Total - 128 bytes
+ # More info here http://www.ietf.org/rfc/rfc2313.txt
+ # esp the Notes in section 8.1
############################################################################
try:
diff --git a/stem/util/log.py b/stem/util/log.py
index 485b6db..60122de 100644
--- a/stem/util/log.py
+++ b/stem/util/log.py
@@ -204,7 +204,8 @@ class LogBuffer(logging.Handler):
# TODO: At least in python 2.6 logging.Handler has a bug in that it doesn't
# extend object, causing our super() call to fail. When we drop python 2.6
# support we should switch back to using super() instead.
- #super(LogBuffer, self).__init__(level = logging_level(runlevel))
+ #
+ # super(LogBuffer, self).__init__(level = logging_level(runlevel))
logging.Handler.__init__(self, level = logging_level(runlevel))
1
0

[stem/master] Fixing E713 (test for membership should be 'not in')
by atagar@torproject.org 17 Aug '14
by atagar@torproject.org 17 Aug '14
17 Aug '14
commit 67e1c4e740da8b1383716dd52246d133848b12e2
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Aug 16 16:40:44 2014 -0700
Fixing E713 (test for membership should be 'not in')
Correcting several instances where we do...
if not X in Y:
... rather than...
if X not in Y:
---
run_tests.py | 4 ++--
stem/connection.py | 2 +-
stem/control.py | 2 +-
stem/descriptor/export.py | 2 +-
stem/descriptor/extrainfo_descriptor.py | 18 +++++++++---------
stem/descriptor/microdescriptor.py | 2 +-
stem/descriptor/networkstatus.py | 16 ++++++++--------
stem/descriptor/reader.py | 2 +-
stem/descriptor/remote.py | 6 +++---
stem/descriptor/router_status_entry.py | 6 +++---
stem/descriptor/server_descriptor.py | 8 ++++----
stem/exit_policy.py | 6 +++---
stem/interpreter/help.py | 2 +-
stem/prereq.py | 2 +-
stem/process.py | 4 ++--
stem/response/events.py | 18 +++++++++---------
stem/response/getconf.py | 2 +-
stem/response/protocolinfo.py | 2 +-
stem/util/conf.py | 2 +-
stem/util/connection.py | 2 +-
stem/util/enum.py | 4 ++--
stem/util/system.py | 2 +-
stem/version.py | 2 +-
test/integ/connection/authentication.py | 4 ++--
test/integ/control/controller.py | 2 +-
test/integ/descriptor/networkstatus.py | 4 ++--
test/integ/util/connection.py | 2 +-
test/integ/util/proc.py | 2 +-
test/mocking.py | 2 +-
test/runner.py | 2 +-
test/unit/connection/connect.py | 2 +-
31 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/run_tests.py b/run_tests.py
index 2524756..3c91513 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -364,7 +364,7 @@ def _get_args(argv):
raise ValueError("No targets provided")
for target in integ_targets:
- if not target in Target:
+ if target not in Target:
raise ValueError("Invalid integration target: %s" % target)
elif target in all_run_targets:
run_targets.append(target)
@@ -384,7 +384,7 @@ def _get_args(argv):
elif opt in ("-l", "--log"):
arg = arg.upper()
- if not arg in stem.util.log.LOG_VALUES:
+ if arg not in stem.util.log.LOG_VALUES:
raise ValueError(LOG_TYPE_ERROR % arg)
args['logging_runlevel'] = arg
diff --git a/stem/connection.py b/stem/connection.py
index 4bfcd5c..cc28fa5 100644
--- a/stem/connection.py
+++ b/stem/connection.py
@@ -555,7 +555,7 @@ def authenticate(controller, password = None, chroot_path = None, protocolinfo_r
# iterating over AuthMethods so we can try them in this order
for auth_type in (AuthMethod.NONE, AuthMethod.PASSWORD, AuthMethod.SAFECOOKIE, AuthMethod.COOKIE):
- if not auth_type in auth_methods:
+ if auth_type not in auth_methods:
continue
try:
diff --git a/stem/control.py b/stem/control.py
index b8cff59..4b70240 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -1096,7 +1096,7 @@ class Controller(BaseController):
for listener in self.get_info(query).split():
if not (listener.startswith('"') and listener.endswith('"')):
raise stem.ProtocolError("'GETINFO %s' responses are expected to be quoted: %s" % (query, listener))
- elif not ':' in listener:
+ elif ':' not in listener:
raise stem.ProtocolError("'GETINFO %s' had a listener without a colon: %s" % (query, listener))
listener = listener[1:-1] # strip quotes
diff --git a/stem/descriptor/export.py b/stem/descriptor/export.py
index 09454c5..fce6eb0 100644
--- a/stem/descriptor/export.py
+++ b/stem/descriptor/export.py
@@ -81,7 +81,7 @@ def export_csv_file(output_file, descriptors, included_fields = (), excluded_fie
if included_fields:
for field in included_fields:
- if not field in desc_attr:
+ if field not in desc_attr:
raise ValueError("%s does not have a '%s' attribute, valid fields are: %s" % (descriptor_type_label, field, ', '.join(desc_attr)))
else:
included_fields = [attr for attr in desc_attr if not attr.startswith('_')]
diff --git a/stem/descriptor/extrainfo_descriptor.py b/stem/descriptor/extrainfo_descriptor.py
index c6d2194..0aa7724 100644
--- a/stem/descriptor/extrainfo_descriptor.py
+++ b/stem/descriptor/extrainfo_descriptor.py
@@ -426,7 +426,7 @@ class ExtraInfoDescriptor(Descriptor):
if validate:
for keyword in self._required_fields():
- if not keyword in entries:
+ if keyword not in entries:
raise ValueError("Extra-info descriptor must have a '%s' entry" % keyword)
for keyword in self._required_fields() + SINGLE_FIELDS:
@@ -506,7 +506,7 @@ class ExtraInfoDescriptor(Descriptor):
for transport_value, _, _ in values:
name, address, port, args = None, None, None, None
- if not ' ' in transport_value:
+ if ' ' not in transport_value:
# scrubbed
name = transport_value
else:
@@ -520,7 +520,7 @@ class ExtraInfoDescriptor(Descriptor):
if len(value_comp) < 2:
raise ValueError('Transport line is missing its address:port value: %s' % line)
- elif not ':' in value_comp[1]:
+ elif ':' not in value_comp[1]:
raise ValueError("Transport line's address:port entry is missing a colon: %s" % line)
else:
address, port_str = value_comp[1].split(':', 1)
@@ -566,7 +566,7 @@ class ExtraInfoDescriptor(Descriptor):
if value:
for entry in value.split(','):
- if not '=' in entry:
+ if '=' not in entry:
if validate:
raise ValueError(error_msg)
else:
@@ -740,7 +740,7 @@ class ExtraInfoDescriptor(Descriptor):
if value:
for entry in value.split(','):
- if not '=' in entry:
+ if '=' not in entry:
if validate:
raise ValueError(error_msg)
else:
@@ -775,7 +775,7 @@ class ExtraInfoDescriptor(Descriptor):
if value:
for entry in value.split(','):
- if not '=' in entry:
+ if '=' not in entry:
if validate:
raise ValueError(error_msg)
else:
@@ -807,7 +807,7 @@ class ExtraInfoDescriptor(Descriptor):
if value:
for entry in value.split(','):
- if not '=' in entry:
+ if '=' not in entry:
raise stem.ProtocolError("The bridge-ip-versions should be a comma separated listing of '<protocol>=<count>' mappings: %s" % line)
protocol, count = entry.split('=', 1)
@@ -821,7 +821,7 @@ class ExtraInfoDescriptor(Descriptor):
if value:
for entry in value.split(','):
- if not '=' in entry:
+ if '=' not in entry:
raise stem.ProtocolError("The bridge-ip-transports should be a comma separated listing of '<protocol>=<count>' mappings: %s" % line)
protocol, count = entry.split('=', 1)
@@ -939,7 +939,7 @@ class BridgeExtraInfoDescriptor(ExtraInfoDescriptor):
'router-digest',
]
- return tuple(included_fields + [f for f in REQUIRED_FIELDS if not f in excluded_fields])
+ return tuple(included_fields + [f for f in REQUIRED_FIELDS if f not in excluded_fields])
def _last_keyword(self):
return None
diff --git a/stem/descriptor/microdescriptor.py b/stem/descriptor/microdescriptor.py
index e29ec71..addb495 100644
--- a/stem/descriptor/microdescriptor.py
+++ b/stem/descriptor/microdescriptor.py
@@ -295,7 +295,7 @@ class Microdescriptor(Descriptor):
"""
for keyword in REQUIRED_FIELDS:
- if not keyword in entries:
+ if keyword not in entries:
raise ValueError("Microdescriptor must have a '%s' entry" % keyword)
for keyword in SINGLE_FIELDS:
diff --git a/stem/descriptor/networkstatus.py b/stem/descriptor/networkstatus.py
index 5af9d02..115f07b 100644
--- a/stem/descriptor/networkstatus.py
+++ b/stem/descriptor/networkstatus.py
@@ -442,7 +442,7 @@ class NetworkStatusDocumentV2(NetworkStatusDocument):
def _check_constraints(self, entries):
required_fields = [field for (field, is_mandatory) in NETWORK_STATUS_V2_FIELDS if is_mandatory]
for keyword in required_fields:
- if not keyword in entries:
+ if keyword not in entries:
raise ValueError("Network status document (v2) must have a '%s' line:\n%s" % (keyword, str(self)))
# all recognized fields can only appear once
@@ -749,7 +749,7 @@ class _DocumentHeader(object):
if value:
for entry in value.split(' '):
- if not '=' in entry:
+ if '=' not in entry:
if not validate:
continue
@@ -894,7 +894,7 @@ class _DocumentFooter(object):
self.bandwidth_weights = _parse_int_mappings(keyword, value, validate)
elif keyword == 'directory-signature':
for sig_value, block_type, block_contents in values:
- if not sig_value.count(' ') in (1, 2):
+ if sig_value.count(' ') not in (1, 2):
if not validate:
continue
@@ -931,7 +931,7 @@ def _check_for_missing_and_disallowed_fields(header, entries, fields):
for field, in_votes, in_consensus, mandatory in fields:
if mandatory and ((header.is_consensus and in_consensus) or (header.is_vote and in_votes)):
# mandatory field, check that we have it
- if not field in entries.keys():
+ if field not in entries.keys():
missing_fields.append(field)
elif (header.is_consensus and not in_consensus) or (header.is_vote and not in_votes):
# field we shouldn't have, check that we don't
@@ -983,7 +983,7 @@ def _parse_int_mappings(keyword, value, validate):
results, seen_keys = {}, []
for entry in value.split(' '):
try:
- if not '=' in entry:
+ if '=' not in entry:
raise ValueError("must only have 'key=value' entries")
entry_key, entry_value = entry.split('=', 1)
@@ -1133,7 +1133,7 @@ class DirectoryAuthority(Descriptor):
excluded_fields += ['legacy-dir-key']
for keyword in required_fields:
- if not keyword in entries:
+ if keyword not in entries:
raise ValueError("Authority entries must have a '%s' line:\n%s" % (keyword, content))
for keyword in entries:
@@ -1294,7 +1294,7 @@ class KeyCertificate(Descriptor):
# appear once
for keyword, is_mandatory in KEY_CERTIFICATE_PARAMS:
- if is_mandatory and not keyword in entries:
+ if is_mandatory and keyword not in entries:
raise ValueError("Key certificates must have a '%s' line:\n%s" % (keyword, content))
entry_count = len(entries.get(keyword, []))
@@ -1321,7 +1321,7 @@ class KeyCertificate(Descriptor):
elif keyword == 'dir-address':
# "dir-address" IPPort
- if not ':' in value:
+ if ':' not in value:
if not validate:
continue
diff --git a/stem/descriptor/reader.py b/stem/descriptor/reader.py
index 05c7533..3b2770a 100644
--- a/stem/descriptor/reader.py
+++ b/stem/descriptor/reader.py
@@ -180,7 +180,7 @@ def load_processed_files(path):
if not line:
continue # skip blank lines
- if not ' ' in line:
+ if ' ' not in line:
raise TypeError('Malformed line: %s' % line)
path, timestamp = line.rsplit(' ', 1)
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index da58f2b..eccf2d1 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -550,7 +550,7 @@ class DescriptorDownloader(object):
resource = '/tor/status-vote/current/authority'
- if not 'endpoint' in query_args:
+ if 'endpoint' not in query_args:
query_args['endpoints'] = [(authority.address, authority.dir_port)]
return self.query(resource + '.z', **query_args)
@@ -605,10 +605,10 @@ class DescriptorDownloader(object):
args = dict(self._default_args)
args.update(query_args)
- if not 'endpoints' in args:
+ if 'endpoints' not in args:
args['endpoints'] = self._endpoints
- if not 'fall_back_to_authority' in args:
+ if 'fall_back_to_authority' not in args:
args['fall_back_to_authority'] = True
return Query(
diff --git a/stem/descriptor/router_status_entry.py b/stem/descriptor/router_status_entry.py
index ee18705..27ff203 100644
--- a/stem/descriptor/router_status_entry.py
+++ b/stem/descriptor/router_status_entry.py
@@ -191,7 +191,7 @@ class RouterStatusEntry(Descriptor):
"""
for keyword in self._required_fields():
- if not keyword in entries:
+ if keyword not in entries:
raise ValueError("%s must have a '%s' line:\n%s" % (self._name(True), keyword, str(self)))
for keyword in self._single_fields():
@@ -532,7 +532,7 @@ def _parse_a_line(desc, value, validate):
# "a" SP address ":" portlist
# example: a [2001:888:2133:0:82:94:251:204]:9001
- if not ':' in value:
+ if ':' not in value:
if not validate:
return
@@ -681,7 +681,7 @@ def _parse_m_line(desc, value, validate):
hashes = {}
for entry in m_comp[1:]:
- if not '=' in entry:
+ if '=' not in entry:
if not validate:
continue
diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index 064b287..1b34c58 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -482,7 +482,7 @@ class ServerDescriptor(Descriptor):
elif keyword == 'hibernating':
# "hibernating" 0|1 (in practice only set if one)
- if validate and not value in ('0', '1'):
+ if validate and value not in ('0', '1'):
raise ValueError('Hibernating line had an invalid value, must be zero or one: %s' % value)
self.hibernating = value == '1'
@@ -545,7 +545,7 @@ class ServerDescriptor(Descriptor):
for entry in or_address_entries:
line = '%s %s' % (keyword, entry)
- if not ':' in entry:
+ if ':' not in entry:
if not validate:
continue
else:
@@ -613,7 +613,7 @@ class ServerDescriptor(Descriptor):
"""
for keyword in self._required_fields():
- if not keyword in entries:
+ if keyword not in entries:
raise ValueError("Descriptor must have a '%s' entry" % keyword)
for keyword in self._single_fields():
@@ -947,7 +947,7 @@ class BridgeDescriptor(ServerDescriptor):
'router-digest',
]
- return tuple(included_fields + [f for f in REQUIRED_FIELDS if not f in excluded_fields])
+ return tuple(included_fields + [f for f in REQUIRED_FIELDS if f not in excluded_fields])
def _single_fields(self):
return self._required_fields() + SINGLE_FIELDS
diff --git a/stem/exit_policy.py b/stem/exit_policy.py
index 2051995..e779562 100644
--- a/stem/exit_policy.py
+++ b/stem/exit_policy.py
@@ -116,7 +116,7 @@ def get_config_policy(rules):
if not rule:
continue
- if not ':' in rule:
+ if ':' not in rule:
rule = "%s:*" % rule
if 'private' in rule:
@@ -211,7 +211,7 @@ class ExitPolicy(object):
for rule in self._get_rules():
if rule.is_accept:
for port in xrange(rule.min_port, rule.max_port + 1):
- if not port in rejected_ports:
+ if port not in rejected_ports:
return True
elif rule.is_address_wildcard():
if rule.is_port_wildcard():
@@ -502,7 +502,7 @@ class ExitPolicyRule(object):
exitpattern = exitpattern[1:]
- if not ':' in exitpattern:
+ if ':' not in exitpattern:
raise ValueError("An exitpattern must be of the form 'addrspec:portspec': %s" % rule)
self.address = None
diff --git a/stem/interpreter/help.py b/stem/interpreter/help.py
index e17fe3f..983da3e 100644
--- a/stem/interpreter/help.py
+++ b/stem/interpreter/help.py
@@ -59,7 +59,7 @@ def _response(controller, arg, config):
usage_info = config.get('help.usage', {})
- if not arg in usage_info:
+ if arg not in usage_info:
return format("No help information available for '%s'..." % arg, *ERROR_OUTPUT)
output = format(usage_info[arg] + '\n', *BOLD_OUTPUT)
diff --git a/stem/prereq.py b/stem/prereq.py
index 2f649e2..46763fb 100644
--- a/stem/prereq.py
+++ b/stem/prereq.py
@@ -124,7 +124,7 @@ def is_mock_available():
# check for mock's new_callable argument for patch() which was introduced in version 0.8.0
- if not 'new_callable' in inspect.getargspec(mock.patch).args:
+ if 'new_callable' not in inspect.getargspec(mock.patch).args:
raise ImportError()
return True
diff --git a/stem/process.py b/stem/process.py
index c9fe863..2886270 100644
--- a/stem/process.py
+++ b/stem/process.py
@@ -83,7 +83,7 @@ def launch_tor(tor_cmd = 'tor', args = None, torrc_path = None, completion_perce
raise OSError("'%s' isn't available on your system. Maybe it's not in your PATH?" % tor_cmd)
# double check that we have a torrc to work with
- if not torrc_path in (None, NO_TORRC) and not os.path.exists(torrc_path):
+ if torrc_path not in (None, NO_TORRC) and not os.path.exists(torrc_path):
raise OSError("torrc doesn't exist (%s)" % torrc_path)
# starts a tor subprocess, raising an OSError if it fails
@@ -150,7 +150,7 @@ def launch_tor(tor_cmd = 'tor', args = None, torrc_path = None, completion_perce
elif problem_match:
runlevel, msg = problem_match.groups()
- if not 'see warnings above' in msg:
+ if 'see warnings above' not in msg:
if ': ' in msg:
msg = msg.split(': ')[-1].strip()
diff --git a/stem/response/events.py b/stem/response/events.py
index 582eb22..0065d68 100644
--- a/stem/response/events.py
+++ b/stem/response/events.py
@@ -146,7 +146,7 @@ class Event(stem.response.ControlMessage):
attr_values = [attr_values]
for value in attr_values:
- if not value in attr_enum:
+ if value not in attr_enum:
log_id = 'event.%s.unknown_%s.%s' % (self.type.lower(), attr, value)
unrecognized_msg = "%s event had an unrecognized %s (%s). Maybe a new addition to the control protocol? Full Event: '%s'" % (self.type, attr, value, self)
log.log_once(log_id, log.INFO, unrecognized_msg)
@@ -227,7 +227,7 @@ class AuthDirNewDescEvent(Event):
if len(lines) < 5:
raise stem.ProtocolError("AUTHDIR_NEWDESCS events must contain lines for at least the type, action, message, descriptor, and terminating 'OK'")
- elif not lines[-1] == 'OK':
+ elif lines[-1] != 'OK':
raise stem.ProtocolError("AUTHDIR_NEWDESCS doesn't end with an 'OK'")
self.action = lines[1]
@@ -493,7 +493,7 @@ class ClientsSeenEvent(Event):
locale_to_count = {}
for entry in self.locales.split(','):
- if not '=' in entry:
+ if '=' not in entry:
raise stem.ProtocolError("The CLIENTS_SEEN's CountrySummary should be a comma separated listing of '<locale>=<count>' mappings: %s" % self)
locale, count = entry.split('=', 1)
@@ -513,7 +513,7 @@ class ClientsSeenEvent(Event):
protocol_to_count = {}
for entry in self.ip_versions.split(','):
- if not '=' in entry:
+ if '=' not in entry:
raise stem.ProtocolError("The CLIENTS_SEEN's IPVersions should be a comma separated listing of '<protocol>=<count>' mappings: %s" % self)
protocol, count = entry.split('=', 1)
@@ -779,7 +779,7 @@ class ORConnEvent(Event):
self.endpoint_fingerprint, self.endpoint_nickname = \
stem.control._parse_circ_entry(self.endpoint)
except stem.ProtocolError:
- if not ':' in self.endpoint:
+ if ':' not in self.endpoint:
raise stem.ProtocolError("ORCONN endpoint is neither a relay nor 'address:port': %s" % self)
address, port = self.endpoint.split(':', 1)
@@ -903,7 +903,7 @@ class StreamEvent(Event):
if self.target is None:
raise stem.ProtocolError("STREAM event didn't have a target: %s" % self)
else:
- if not ':' in self.target:
+ if ':' not in self.target:
raise stem.ProtocolError("Target location must be of the form 'address:port': %s" % self)
address, port = self.target.rsplit(':', 1)
@@ -918,7 +918,7 @@ class StreamEvent(Event):
self.source_address = None
self.source_port = None
else:
- if not ':' in self.source_addr:
+ if ':' not in self.source_addr:
raise stem.ProtocolError("Source location must be of the form 'address:port': %s" % self)
address, port = self.source_addr.split(':', 1)
@@ -987,7 +987,7 @@ class TransportLaunchedEvent(Event):
_VERSION_ADDED = stem.version.Requirement.EVENT_TRANSPORT_LAUNCHED
def _parse(self):
- if not self.type in ('server', 'client'):
+ if self.type not in ('server', 'client'):
raise stem.ProtocolError("Transport type should either be 'server' or 'client': %s" % self)
if not connection.is_valid_ipv4_address(self.address) and \
@@ -1205,7 +1205,7 @@ def _parse_cell_type_mapping(mapping):
results = {}
for entry in mapping.split(','):
- if not ':' in entry:
+ if ':' not in entry:
raise stem.ProtocolError("Mappings are expected to be of the form 'key:value', got '%s': %s" % (entry, mapping))
key, value = entry.split(':', 1)
diff --git a/stem/response/getconf.py b/stem/response/getconf.py
index 72f91af..c203ae9 100644
--- a/stem/response/getconf.py
+++ b/stem/response/getconf.py
@@ -48,7 +48,7 @@ class GetConfResponse(stem.response.ControlMessage):
else:
key, value = (line.pop(), None)
- if not key in self.entries:
+ if key not in self.entries:
self.entries[key] = []
if value is not None:
diff --git a/stem/response/protocolinfo.py b/stem/response/protocolinfo.py
index 82e5ec0..bbc2a1f 100644
--- a/stem/response/protocolinfo.py
+++ b/stem/response/protocolinfo.py
@@ -97,7 +97,7 @@ class ProtocolInfoResponse(stem.response.ControlMessage):
# our auth_methods should have a single AuthMethod.UNKNOWN entry if
# any unknown authentication methods exist
- if not AuthMethod.UNKNOWN in auth_methods:
+ if AuthMethod.UNKNOWN not in auth_methods:
auth_methods.append(AuthMethod.UNKNOWN)
# parse optional COOKIEFILE mapping (quoted and can have escapes)
diff --git a/stem/util/conf.py b/stem/util/conf.py
index 18b0df4..c96aa88 100644
--- a/stem/util/conf.py
+++ b/stem/util/conf.py
@@ -236,7 +236,7 @@ def get_config(handle):
:param str handle: unique identifier used to access this config instance
"""
- if not handle in CONFS:
+ if handle not in CONFS:
CONFS[handle] = Config()
return CONFS[handle]
diff --git a/stem/util/connection.py b/stem/util/connection.py
index 5dce161..461f40a 100644
--- a/stem/util/connection.py
+++ b/stem/util/connection.py
@@ -367,7 +367,7 @@ def is_valid_ipv6_address(address, allow_brackets = False):
if colon_count > 7:
return False # too many groups
- elif colon_count != 7 and not '::' in address:
+ elif colon_count != 7 and '::' not in address:
return False # not enough groups and none are collapsed
elif address.count('::') > 1 or ':::' in address:
return False # multiple groupings of zeros can't be collapsed
diff --git a/stem/util/enum.py b/stem/util/enum.py
index 1500a43..4a86fc5 100644
--- a/stem/util/enum.py
+++ b/stem/util/enum.py
@@ -121,7 +121,7 @@ class Enum(object):
:raises: **ValueError** if no such element exists
"""
- if not value in self._values:
+ if value not in self._values:
raise ValueError('No such enumeration exists: %s (options: %s)' % (value, ', '.join(self._values)))
next_index = (self._values.index(value) + 1) % len(self._values)
@@ -138,7 +138,7 @@ class Enum(object):
:raises: **ValueError** if no such element exists
"""
- if not value in self._values:
+ if value not in self._values:
raise ValueError('No such enumeration exists: %s (options: %s)' % (value, ', '.join(self._values)))
prev_index = (self._values.index(value) - 1) % len(self._values)
diff --git a/stem/util/system.py b/stem/util/system.py
index d24d34b..b42a03f 100644
--- a/stem/util/system.py
+++ b/stem/util/system.py
@@ -640,7 +640,7 @@ def get_cwd(pid):
# p2683
# n/proc/2683/cwd (readlink: Permission denied)
- if not ' ' in lsof_result:
+ if ' ' not in lsof_result:
return lsof_result
else:
log.debug('%s we got unexpected output from lsof: %s' % (logging_prefix, results))
diff --git a/stem/version.py b/stem/version.py
index a772e7c..b5b1151 100644
--- a/stem/version.py
+++ b/stem/version.py
@@ -90,7 +90,7 @@ def get_system_tor_version(tor_cmd = 'tor'):
:raises: **IOError** if unable to query or parse the version
"""
- if not tor_cmd in VERSION_CACHE:
+ if tor_cmd not in VERSION_CACHE:
version_cmd = '%s --version' % tor_cmd
try:
diff --git a/test/integ/connection/authentication.py b/test/integ/connection/authentication.py
index 308f18a..816e671 100644
--- a/test/integ/connection/authentication.py
+++ b/test/integ/connection/authentication.py
@@ -183,7 +183,7 @@ class TestAuthenticate(unittest.TestCase):
runner = test.runner.get_runner()
tor_options = runner.get_options()
- is_password_only = test.runner.Torrc.PASSWORD in tor_options and not test.runner.Torrc.COOKIE in tor_options
+ is_password_only = test.runner.Torrc.PASSWORD in tor_options and test.runner.Torrc.COOKIE not in tor_options
# tests without a password
with runner.get_tor_socket(False) as control_socket:
@@ -218,7 +218,7 @@ class TestAuthenticate(unittest.TestCase):
runner = test.runner.get_runner()
tor_options = runner.get_options()
- is_cookie_only = test.runner.Torrc.COOKIE in tor_options and not test.runner.Torrc.PASSWORD in tor_options
+ is_cookie_only = test.runner.Torrc.COOKIE in tor_options and test.runner.Torrc.PASSWORD not in tor_options
# test both cookie authentication mechanisms
with runner.get_tor_socket(False) as control_socket:
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index c428f25..c2c1d91 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -232,7 +232,7 @@ class TestController(unittest.TestCase):
tor_options = test.runner.get_runner().get_options()
- if not test.runner.Torrc.COOKIE in tor_options:
+ if test.runner.Torrc.COOKIE not in tor_options:
controller.connect()
if test.runner.Torrc.PASSWORD in tor_options:
diff --git a/test/integ/descriptor/networkstatus.py b/test/integ/descriptor/networkstatus.py
index 83a3ff6..8172fb4 100644
--- a/test/integ/descriptor/networkstatus.py
+++ b/test/integ/descriptor/networkstatus.py
@@ -44,7 +44,7 @@ class TestNetworkStatus(unittest.TestCase):
# TODO: this should be a 'new capability' check later rather than
# failing the tests
for flag in router.flags:
- if not flag in stem.Flag:
+ if flag not in stem.Flag:
raise ValueError('Unrecognized flag type: %s, found on relay %s (%s)' % (flag, router.fingerprint, router.nickname))
unrecognized_lines = router.get_unrecognized_lines()
@@ -85,7 +85,7 @@ class TestNetworkStatus(unittest.TestCase):
# TODO: this should be a 'new capability' check later rather than
# failing the tests
for flag in router.flags:
- if not flag in stem.Flag:
+ if flag not in stem.Flag:
raise ValueError('Unrecognized flag type: %s, found on microdescriptor relay %s (%s)' % (flag, router.fingerprint, router.nickname))
unrecognized_lines = router.get_unrecognized_lines()
diff --git a/test/integ/util/connection.py b/test/integ/util/connection.py
index 4c05f74..8883be2 100644
--- a/test/integ/util/connection.py
+++ b/test/integ/util/connection.py
@@ -14,7 +14,7 @@ class TestConnection(unittest.TestCase):
def test_get_connections(self):
runner = test.runner.get_runner()
- if not test.runner.Torrc.PORT in runner.get_options():
+ if test.runner.Torrc.PORT not in runner.get_options():
test.runner.skip(self, '(no control port)')
return
elif not test.runner.get_runner().is_ptraceable():
diff --git a/test/integ/util/proc.py b/test/integ/util/proc.py
index 4a43e84..8b76dd6 100644
--- a/test/integ/util/proc.py
+++ b/test/integ/util/proc.py
@@ -84,7 +84,7 @@ class TestProc(unittest.TestCase):
if not proc.is_available():
test.runner.skip(self, '(proc unavailable)')
return
- elif not test.runner.Torrc.PORT in runner.get_options():
+ elif test.runner.Torrc.PORT not in runner.get_options():
test.runner.skip(self, '(no control port)')
return
elif not test.runner.get_runner().is_ptraceable():
diff --git a/test/mocking.py b/test/mocking.py
index 057541d..e473058 100644
--- a/test/mocking.py
+++ b/test/mocking.py
@@ -211,7 +211,7 @@ def get_all_combinations(attr, include_empty = False):
# deduplicate, sort, and only provide if we haven't seen it yet
item = tuple(sorted(set(item)))
- if not item in seen:
+ if item not in seen:
seen.add(item)
yield item
diff --git a/test/runner.py b/test/runner.py
index 07cbd34..1b55da3 100644
--- a/test/runner.py
+++ b/test/runner.py
@@ -156,7 +156,7 @@ def require_online(test_case):
:returns: True if test should be skipped, False otherwise
"""
- if not Target.ONLINE in get_runner().attribute_targets:
+ if Target.ONLINE not in get_runner().attribute_targets:
skip(test_case, '(requires online target)')
return True
diff --git a/test/unit/connection/connect.py b/test/unit/connection/connect.py
index 503ad6f..95edea0 100644
--- a/test/unit/connection/connect.py
+++ b/test/unit/connection/connect.py
@@ -137,5 +137,5 @@ class TestConnect(unittest.TestCase):
stdout_output = stdout_mock.getvalue()
stdout_mock.truncate(0)
- if not msg in stdout_output:
+ if msg not in stdout_output:
self.fail("Expected...\n\n%s\n\n... which couldn't be found in...\n\n%s" % (msg, stdout_output))
1
0

[stem/master] Fixing E126 (continuation line over-indented for hanging indent)
by atagar@torproject.org 17 Aug '14
by atagar@torproject.org 17 Aug '14
17 Aug '14
commit f4826d5eea7f0ea8777d1a9d2b8afef3fb00efa2
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Aug 16 17:06:51 2014 -0700
Fixing E126 (continuation line over-indented for hanging indent)
Evidently PEP8 doesn't like our multi-line imports. That's fine, the
parenthetical imports are just as readable.
---
docs/roles.py | 6 +--
test/unit/descriptor/export.py | 6 ++-
test/unit/descriptor/microdescriptor.py | 7 +++-
test/unit/descriptor/networkstatus/document_v3.py | 41 +++++++++++---------
.../descriptor/networkstatus/key_certificate.py | 10 +++--
test/unit/descriptor/router_status_entry.py | 10 +++--
test/unit/descriptor/server_descriptor.py | 8 ++--
test/unit/exit_policy/policy.py | 10 +++--
8 files changed, 57 insertions(+), 41 deletions(-)
diff --git a/docs/roles.py b/docs/roles.py
index 0130ea3..67e944c 100644
--- a/docs/roles.py
+++ b/docs/roles.py
@@ -25,8 +25,7 @@ def role_trac(name, rawtext, text, lineno, inliner, options={}, content=[]):
if ticket_num <= 0:
raise ValueError
except ValueError:
- msg = inliner.reporter.error(
- 'Invalid trac ticket: %s' % text, line=lineno)
+ msg = inliner.reporter.error('Invalid trac ticket: %s' % text, line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return ([prb], [msg])
@@ -48,8 +47,7 @@ def role_spec(name, rawtext, text, lineno, inliner, options={}, content=[]):
# checking if the input is a valid short commit id
if not re.match('^[0-9a-f]{7}$', text):
- msg = inliner.reporter.error(
- 'Spec tag expects a short commit id (seven hex characters): %s' % text, line=lineno)
+ msg = inliner.reporter.error('Spec tag expects a short commit id (seven hex characters): %s' % text, line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return ([prb], [msg])
diff --git a/test/unit/descriptor/export.py b/test/unit/descriptor/export.py
index 55429fd..eca2200 100644
--- a/test/unit/descriptor/export.py
+++ b/test/unit/descriptor/export.py
@@ -10,8 +10,10 @@ import test.runner
from stem.descriptor.export import export_csv, export_csv_file
-from test.mocking import get_relay_server_descriptor, \
- get_bridge_server_descriptor
+from test.mocking import (
+ get_relay_server_descriptor,
+ get_bridge_server_descriptor,
+)
class TestExport(unittest.TestCase):
diff --git a/test/unit/descriptor/microdescriptor.py b/test/unit/descriptor/microdescriptor.py
index 2193731..267b01a 100644
--- a/test/unit/descriptor/microdescriptor.py
+++ b/test/unit/descriptor/microdescriptor.py
@@ -9,8 +9,11 @@ import stem.exit_policy
import stem.descriptor
from stem.descriptor.microdescriptor import Microdescriptor
-from test.mocking import get_microdescriptor, \
- CRYPTO_BLOB
+
+from test.mocking import (
+ get_microdescriptor,
+ CRYPTO_BLOB,
+)
from test.unit.descriptor import get_resource
diff --git a/test/unit/descriptor/networkstatus/document_v3.py b/test/unit/descriptor/networkstatus/document_v3.py
index 7ba034c..261a70f 100644
--- a/test/unit/descriptor/networkstatus/document_v3.py
+++ b/test/unit/descriptor/networkstatus/document_v3.py
@@ -11,24 +11,29 @@ import stem.version
from stem import Flag
-from stem.descriptor.networkstatus import HEADER_STATUS_DOCUMENT_FIELDS, \
- FOOTER_STATUS_DOCUMENT_FIELDS, \
- DEFAULT_PARAMS, \
- DirectoryAuthority, \
- NetworkStatusDocumentV3, \
- _parse_file
-
-from stem.descriptor.router_status_entry import \
- RouterStatusEntryV3, \
- RouterStatusEntryMicroV3
-
-from test.mocking import get_router_status_entry_v3, \
- get_router_status_entry_micro_v3, \
- get_directory_authority, \
- get_network_status_document_v3, \
- CRYPTO_BLOB, \
- DOC_SIG, \
- NETWORK_STATUS_DOCUMENT_FOOTER
+from stem.descriptor.networkstatus import (
+ HEADER_STATUS_DOCUMENT_FIELDS,
+ FOOTER_STATUS_DOCUMENT_FIELDS,
+ DEFAULT_PARAMS,
+ DirectoryAuthority,
+ NetworkStatusDocumentV3,
+ _parse_file,
+)
+
+from stem.descriptor.router_status_entry import (
+ RouterStatusEntryV3,
+ RouterStatusEntryMicroV3,
+)
+
+from test.mocking import (
+ get_router_status_entry_v3,
+ get_router_status_entry_micro_v3,
+ get_directory_authority,
+ get_network_status_document_v3,
+ CRYPTO_BLOB,
+ DOC_SIG,
+ NETWORK_STATUS_DOCUMENT_FOOTER,
+)
from test.unit.descriptor import get_resource
diff --git a/test/unit/descriptor/networkstatus/key_certificate.py b/test/unit/descriptor/networkstatus/key_certificate.py
index 23ad7ca..34e16a8 100644
--- a/test/unit/descriptor/networkstatus/key_certificate.py
+++ b/test/unit/descriptor/networkstatus/key_certificate.py
@@ -7,10 +7,12 @@ import unittest
from stem.descriptor.networkstatus import KeyCertificate
-from test.mocking import get_key_certificate, \
- CRYPTO_BLOB, \
- KEY_CERTIFICATE_HEADER, \
- KEY_CERTIFICATE_FOOTER
+from test.mocking import (
+ get_key_certificate,
+ CRYPTO_BLOB,
+ KEY_CERTIFICATE_HEADER,
+ KEY_CERTIFICATE_FOOTER,
+)
class TestKeyCertificate(unittest.TestCase):
diff --git a/test/unit/descriptor/router_status_entry.py b/test/unit/descriptor/router_status_entry.py
index 77b4e20..4c9a13a 100644
--- a/test/unit/descriptor/router_status_entry.py
+++ b/test/unit/descriptor/router_status_entry.py
@@ -10,10 +10,12 @@ from stem.descriptor.router_status_entry import RouterStatusEntryV3, _base64_to_
from stem.exit_policy import MicroExitPolicy
from stem.version import Version
-from test.mocking import get_router_status_entry_v2, \
- get_router_status_entry_v3, \
- get_router_status_entry_micro_v3, \
- ROUTER_STATUS_ENTRY_V3_HEADER
+from test.mocking import (
+ get_router_status_entry_v2,
+ get_router_status_entry_v3,
+ get_router_status_entry_micro_v3,
+ ROUTER_STATUS_ENTRY_V3_HEADER,
+)
class TestRouterStatusEntry(unittest.TestCase):
diff --git a/test/unit/descriptor/server_descriptor.py b/test/unit/descriptor/server_descriptor.py
index c3f429a..96dab1c 100644
--- a/test/unit/descriptor/server_descriptor.py
+++ b/test/unit/descriptor/server_descriptor.py
@@ -15,9 +15,11 @@ import stem.util.str_tools
from stem.descriptor.server_descriptor import RelayDescriptor, BridgeDescriptor
-from test.mocking import get_relay_server_descriptor, \
- get_bridge_server_descriptor, \
- CRYPTO_BLOB
+from test.mocking import (
+ get_relay_server_descriptor,
+ get_bridge_server_descriptor,
+ CRYPTO_BLOB,
+)
from test.unit.descriptor import get_resource
diff --git a/test/unit/exit_policy/policy.py b/test/unit/exit_policy/policy.py
index 4965aac..70d6ac1 100644
--- a/test/unit/exit_policy/policy.py
+++ b/test/unit/exit_policy/policy.py
@@ -5,10 +5,12 @@ Unit tests for the stem.exit_policy.ExitPolicy class.
import pickle
import unittest
-from stem.exit_policy import get_config_policy, \
- ExitPolicy, \
- MicroExitPolicy, \
- ExitPolicyRule
+from stem.exit_policy import (
+ get_config_policy,
+ ExitPolicy,
+ MicroExitPolicy,
+ ExitPolicyRule,
+)
class TestExitPolicy(unittest.TestCase):
1
0

[stem/master] Fixing E128 (continuation line under-indented for visual indent)
by atagar@torproject.org 17 Aug '14
by atagar@torproject.org 17 Aug '14
17 Aug '14
commit 7b38bbe3d4277e2809e03c5eac47202b9833dfa3
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Aug 16 17:13:09 2014 -0700
Fixing E128 (continuation line under-indented for visual indent)
Mostly complaints about alignment with the parenthese for multi-line
conditionals.
---
stem/descriptor/server_descriptor.py | 2 +-
test/mocking.py | 2 +-
test/unit/descriptor/networkstatus/key_certificate.py | 6 +++---
test/unit/descriptor/server_descriptor.py | 4 ++--
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index c5d24d3..6599e0a 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -558,7 +558,7 @@ class ServerDescriptor(Descriptor):
address = address[1:-1] # remove brackets
if not ((not is_ipv6 and stem.util.connection.is_valid_ipv4_address(address)) or
- (is_ipv6 and stem.util.connection.is_valid_ipv6_address(address))):
+ (is_ipv6 and stem.util.connection.is_valid_ipv6_address(address))):
if not validate:
continue
else:
diff --git a/test/mocking.py b/test/mocking.py
index e473058..e3715c7 100644
--- a/test/mocking.py
+++ b/test/mocking.py
@@ -304,7 +304,7 @@ def _get_descriptor_content(attr = None, exclude = (), header_template = (), foo
attr = dict(attr) # shallow copy since we're destructive
for content, template in ((header_content, header_template),
- (footer_content, footer_template)):
+ (footer_content, footer_template)):
for keyword, value in template:
if keyword in exclude:
continue
diff --git a/test/unit/descriptor/networkstatus/key_certificate.py b/test/unit/descriptor/networkstatus/key_certificate.py
index 34e16a8..8d0e828 100644
--- a/test/unit/descriptor/networkstatus/key_certificate.py
+++ b/test/unit/descriptor/networkstatus/key_certificate.py
@@ -185,9 +185,9 @@ class TestKeyCertificate(unittest.TestCase):
test_value = '\n-----BEGIN ID SIGNATURE-----%s-----END UGABUGA SIGNATURE-----' % CRYPTO_BLOB
for field, attr in (('dir-identity-key', 'identity_key'),
- ('dir-signing-key', 'signing_key'),
- ('dir-key-crosscert', 'crosscert'),
- ('dir-key-certification', 'certification')):
+ ('dir-signing-key', 'signing_key'),
+ ('dir-key-crosscert', 'crosscert'),
+ ('dir-key-certification', 'certification')):
content = get_key_certificate({field: test_value}, content = True)
self.assertRaises(ValueError, KeyCertificate, content)
diff --git a/test/unit/descriptor/server_descriptor.py b/test/unit/descriptor/server_descriptor.py
index 96dab1c..97fcde3 100644
--- a/test/unit/descriptor/server_descriptor.py
+++ b/test/unit/descriptor/server_descriptor.py
@@ -695,8 +695,8 @@ Qlx9HNCqCY877ztFRC624ja2ql6A2hBcuoYMbkHjcQ4=
"""
desc_text = b'\n'.join((get_bridge_server_descriptor(content = True),
- b'or-address 10.45.227.253:9001',
- b'or-address [fd9f:2e19:3bcf::02:9970]:443'))
+ b'or-address 10.45.227.253:9001',
+ b'or-address [fd9f:2e19:3bcf::02:9970]:443'))
expected_or_addresses = [
('10.45.227.253', 9001, False),
1
0
commit cc1a6168815f66809a4284b7d2958b13059acdbd
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Aug 16 17:20:54 2014 -0700
Fixing pyflakes issues
Couple finds from the new version of pyflakes...
* /home/atagar/Desktop/stem/stem/descriptor/server_descriptor.py
line 543 - list comprehension redefines 'value' from line 374
* /home/atagar/Desktop/stem/stem/util/test_tools.py
line 175 - local variable 'prev_indent' is assigned to but never used
---
stem/descriptor/server_descriptor.py | 2 +-
stem/util/test_tools.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index 6599e0a..c1fed66 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -540,7 +540,7 @@ class ServerDescriptor(Descriptor):
elif keyword == 'ipv6-policy':
self.exit_policy_v6 = stem.exit_policy.MicroExitPolicy(value)
elif keyword == 'or-address':
- or_address_entries = [value for (value, _, _) in values]
+ or_address_entries = [address_entry for (address_entry, _, _) in values]
for entry in or_address_entries:
line = '%s %s' % (keyword, entry)
diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index c976128..ba6392d 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -172,7 +172,7 @@ def get_stylistic_issues(paths, check_two_space_indents = False, check_newlines
with open(path) as f:
file_contents = f.read()
- lines, prev_indent = file_contents.split('\n'), 0
+ lines = file_contents.split('\n')
is_block_comment = False
for index, line in enumerate(lines):
1
0